如何填充XMLGregorianCalendar()

Edg*_*ase 8 java binding jaxb

我需要从XML填充JAX Bean,但是没有setter方法.我在下面得到以下消息

 Failed to invoke public javax.xml.datatype.XMLGregorianCalendar() with no args
Run Code Online (Sandbox Code Playgroud)

我编写了以下方法来获取日期并将其转换为XMLGregorianCalendar,然后在我的包装器类中调用setter.但是我仍然得到例外.是否有一种标准的方法来处理我忽略的数据类型?也许我的包装类没有调用它,但Netbeans不允许我出于某种原因附加调试器.

public XMLGregorianCalendar asXMLGregorianCalendar(java.util.Date date) throws DatatypeConfigurationException {
    DatatypeFactory datatypeFactory = DatatypeFactory.newInstance();
    if (date == null) {
        return null;
    } else {
        GregorianCalendar gc = new GregorianCalendar();
        gc.setTimeInMillis(date.getTime());
        return datatypeFactory.newXMLGregorianCalendar(gc);
    }
}
Run Code Online (Sandbox Code Playgroud)

Bean中的setter位于下方

public void setDeliveryDate(XMLGregorianCalendar value) {
    this.deliveryDate = value;
}
Run Code Online (Sandbox Code Playgroud)

Kev*_*ker 10

您的示例代码显示您尝试使用Date对象填充它,而问题本身表示您正在尝试从XML填充.因此,除非我误解,否则从XML填充只需使用:

XmlGregorianCalendar cal = DatatypeFactory.newInstance().newXMLGregorianCalendar(yourXmlDateTimeString);
Run Code Online (Sandbox Code Playgroud)