Java CXF终结点上的日期类型返回null时出现问题

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

我已经用spring配置了一个简单的CXF端点,它公开了一个带有java.util.Date属性的简单对象。 使用.NET客户端远程调用后,date属性始终为空

终点:

<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);