我需要从XML填充JAX Bean,但是没有设置方法。我在下面收到以下消息

 Failed to invoke public javax.xml.datatype.XMLGregorianCalendar() with no args

我编写了以下方法来获取日期并将其转换为XMLGregorianCalendar,然后在我的包装器类中调用setter。但是,我仍然得到异常(exception)。有没有一种处理我所忽略的数据类型的标准方法?也许我的包装器类没有调用它,但是由于某些原因,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);
    }
}

Bean中的二传手在下面
public void setDeliveryDate(XMLGregorianCalendar value) {
    this.deliveryDate = value;
}

最佳答案

您的示例代码显示您尝试使用Date对象填充它,而问题本身表明您尝试使用XML填充。因此,除非我误会,否则请使用XML进行填充:

XmlGregorianCalendar cal = DatatypeFactory.newInstance().newXMLGregorianCalendar(yourXmlDateTimeString);

10-05 20:12
查看更多