不是日期的有效值

时间:2012-06-26 02:44:17

标签: spring date soap jaxb

我正在使用spring ws 2.0.2.RELEASE

我有一个创建销售订单的网络服务

SOAP调用中的两个元素是日期:

<ns3:requestedDate>2012-06-06T01:00:00.000+10:00</ns3:requestedDate>

<ns3:orderDate>2012-06-06T10:25:09.681+10:00</ns3:orderDate>

这两个字段在架构中定义为xs:dateTime

当我通过SOAP调用发送到我的服务时,我得到:

  <SOAP-ENV:Fault>

     <faultcode>SOAP-ENV:Client</faultcode>

     <faultstring xml:lang="en">Validation error</faultstring>

     <detail>

        <spring-ws:ValidationError xmlns:spring-ws="http://springframework.org/spring-ws">cvc-datatype-valid.1.2.1: '2012-06-06T01:00:00.000+10:00' is not a valid value for 'date'.</spring-ws:ValidationError>

        <spring-ws:ValidationError xmlns:spring-ws="http://springframework.org/spring-ws">cvc-type.3.1.3: The value '2012-06-06T01:00:00.000+10:00' of element 'ns3:requestedDate' is not valid.</spring-ws:ValidationError>

        <spring-ws:ValidationError xmlns:spring-ws="http://springframework.org/spring-ws">cvc-datatype-valid.1.2.1: '2012-06-06T10:25:09.681+10:00' is not a valid value for 'date'.</spring-ws:ValidationError>

        <spring-ws:ValidationError xmlns:spring-ws="http://springframework.org/spring-ws">cvc-type.3.1.3: The value '2012-06-06T10:25:09.681+10:00' of element 'ns3:orderDate' is not valid.</spring-ws:ValidationError>

     </detail>

  </SOAP-ENV:Fault>

知道为什么这些有效日期被Spring报告为无效?

2 个答案:

答案 0 :(得分:1)

似乎如果我只传入日期部分'2012-06-06'就可以了。我想这里的线索应该是'date'而不是'datetime'。被调用的终点必须只期待一个日期。

答案 1 :(得分:0)

可能是日期格式。它以YYYY-MM-DD格式解析日期,但许多验证器通过了基本上普遍接受的DD-MM-YYYY互联网格式。最近在移动safari中验证表单时遇到了类似的麻烦。尝试更改日期格式,看看是否有效。