我正在使用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报告为无效?
答案 0 :(得分:1)
似乎如果我只传入日期部分'2012-06-06'就可以了。我想这里的线索应该是'date'而不是'datetime'。被调用的终点必须只期待一个日期。
答案 1 :(得分:0)
可能是日期格式。它以YYYY-MM-DD
格式解析日期,但许多验证器通过了基本上普遍接受的DD-MM-YYYY
互联网格式。最近在移动safari中验证表单时遇到了类似的麻烦。尝试更改日期格式,看看是否有效。