Net调用Java Webservice时,我需要将XMLSchema/long转换为xmlsoap/long

Net调用Java Webservice时,我需要将XMLSchema/long转换为xmlsoap/long,java,.net,web-services,soap,interop,Java,.net,Web Services,Soap,Interop,我正在使用C#with.NET4,并试图使用java Web服务。我的代码是通过添加.NET2.0风格的webservice引用自动生成的。我认为.net发送到java Web服务的类型存在问题,以下是我尝试连接时收到的异常: Internal Server Error (deserialization error: deserialization error: unexpected element type: expected={http://schemas.xmlsoap.org/soap/

我正在使用C#with.NET4,并试图使用java Web服务。我的代码是通过添加.NET2.0风格的webservice引用自动生成的。我认为.net发送到java Web服务的类型存在问题,以下是我尝试连接时收到的异常:

Internal Server Error (deserialization error: deserialization error: unexpected element type: expected={http://schemas.xmlsoap.org/soap/encoding/}long, actual={http://www.w3.org/2001/XMLSchema}long)
Web服务中的旧文档: 将对象序列化为SOAP消息时,Microsoft.NET平台会将所有原语映射到W3C XML 模式类型。这一点,再加上.NET平台无法区分原语和原语 包装器(通过自动装箱)在使用Sun One web服务时会导致互操作性问题 编码的RPC SOAP消息。 在Java编程语言中,原语及其等效对象包装器不能自动装箱 因此在语言上有区别。 当web服务在Sun One下生成和部署时,服务器端WSDL映射Java 将原语映射到W3C模式类型,并将Java对象映射到SOAP模式类型

有人知道我如何告诉.net发送}长而不是}长吗

谢谢!
AFrieze

建议您尝试将样式更改为
文档
。这样,当您生成wsdl时,您将找到一个
部分,列出服务使用的所有数据类型。本节还将包含一个
名称空间
元素,该元素本质上是导致您现在出现问题的原因,但这并不明显,因为对于RPC样式的服务,wsdl不包含类型节。我假设
编码
文字

编辑:


我应该先猜到,但看起来您的服务使用的是
encoded
类型,而不是
literal
。编码服务的一个特点是它们总是容易出现互操作性问题。我的建议是:不要使用rpc/encoded-使用Document/Literal。

您是如何用C#编码/获取客户机的?你是自动生成的吗?wsdl是什么样的?是doc样式还是rpc样式?给一些细节我添加了更多的细节Bhaskar…希望能有所帮助!嗨,Bhaskar,我正在查看生成的wsdl文件,我确实看到了类型部分。引发错误的变量类型设置为“soap enc:long”,这应该是正确的。然而,当.net调用该服务时,它并没有发送长消息的soap版本。有什么想法吗?我刚刚在原始问题中添加了一些来自Web服务的文档,这可能会有所帮助。嗨,Bhaskar。我对Web服务没有任何控制权:(我只是试图从.net中使用它