我需要从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);