在SoapUI调用webservice传入DateTime字符串参数报“不是有效的 AllXsd 值”的问题

在SoapUI中设置传入参数为我们常用的日期格式 yyyy-MM-dd HH:mm:ss.fff  如:2014-11-11 11:11:11.111 会报错,

错误信息如下:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Client</faultcode>
         <faultstring>System.Web.Services.Protocols.SoapException: 服务器无法读取请求。 ---> System.InvalidOperationException: XML 文档(5, 66)中有错误。 ---> System.FormatException: 字符串“2014-11-05 15:03:50.963”不是有效的 AllXsd 值。
   在 System.Xml.Schema.XsdDateTime..ctor(String text, XsdDateTimeFlags kinds)
   在 System.Xml.XmlConvert.ToDateTime(String s, XmlDateTimeSerializationMode dateTimeOption)
   在 System.Xml.Serialization.XmlCustomFormatter.ToDateTime(String value)
   在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read1_NullableOfDateTime(Boolean checkType)
   在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read4_GetBudgetData()
   在 Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer4.Deserialize(XmlSerializationReader reader)
   在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)
   在 System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.Web.Services.Protocols.SoapServerProtocol.ReadParameters()
   在 System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()</faultstring>
         <detail/>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

 

解决方法:将日期格式替换为:yyyy-MM-ddTHH:mm:ss.fff 如:2014-11-11T11:11:11.111 就可以正常调用了。

posted @ 2014-11-11 15:18  Yayba  阅读(2443)  评论(0编辑  收藏  举报