Java CXF终结点上的日期类型返回null时出现问题
我已经用spring配置了一个简单的CXF端点,它公开了一个带有java.util.Date属性的简单对象。 使用.NET客户端远程调用后,date属性始终为空 终点:Java CXF终结点上的日期类型返回null时出现问题,java,.net,web-services,spring,cxf,Java,.net,Web Services,Spring,Cxf,我已经用spring配置了一个简单的CXF端点,它公开了一个带有java.util.Date属性的简单对象。 使用.NET客户端远程调用后,date属性始终为空 终点: <jaxws:endpoint id="simpleService" implementor="cxf.base.SimpleServiceImpl" address="/SimpleService" /> 其中toString是公开的webservice
<jaxws:endpoint id="simpleService" implementor="cxf.base.SimpleServiceImpl" address="/SimpleService" />
其中toString是公开的webservice方法
你知道我在这里遗漏了什么吗?我想服务器端的marshall阶段有缺陷。如果您不确定,那么在服务器端进行一些日志记录。此外,tcp/ip监视器可以显示传输的SOAP元素。例如,Eclipse有一个优秀的tcp/ip监视器视图 如果它是一个marshall bug,并且您使用JAXB进行marshall,那么您必须将
java.util.Date
值转换为javax.xml.datatype.XMLGregorianCalendar
值
这可以通过javax.xml.datatype.DatatypeFactory
类来完成
确保使用与日期元素匹配的重载newXMLGregorianCalendar()
方法
包含有关不同日期和时间XSD元素的良好信息的页面:
SimpleServiceClient client = new SimpleServiceClient();
simpleObject simpleObject = new simpleObject();
simpleObject.date = new DateTime(2010, 1, 1);
simpleObject.name = "Simple Object";
txtResult.Text = client.toString(simpleObject);