Axis1.4 调用.net服务出错
Axis1.4 调用.net服务出错
1 出错描述:
AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Client faultSubcode: faultString: System.Web.Services.Protocols.SoapException: 服务器无法读取请求。 ---> System.InvalidOperationException: XML 文档(1, 641)中有错误。 ---> System.FormatException: 输入字符串的格式不正确。 在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 在 System.Xml.XmlConvert.ToInt32(String s) 在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1.Read7_GetOrderListByBA() 在 Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer12.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() faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:System.Web.Services.Protocols.SoapException: 服务器无法读取请求。 ---> System.InvalidOperationException: XML 文档(1, 641)中有错误。 ---> System.FormatException: 输入字符串的格式不正确。
2 解决方法
如果确定,服务器地址,参数个数和参数类型都是一致的话,还有一种情况会导致这个问题。就是参数列表中有两个及以上的int型参数。对应的解决方法是使用最新的axis2包来调用。 如果对应的.net服务你自己可以控制的话,也可以修改服务的参数类型。 不过将java中调用的参数类型全部设成String,调用.net中的int型的貌似也可以。