我不得不使用第三方web服务实现在.NET 2.0(IIS上,当然)。

我必须作出一个Java客户端。我使用的WSDL2Java来生成SOAP存根。

作为最初的Apache Axis项目现在看来没有维护,我是具有从服务解析一些回应一些问题,我转换客户端使用的Axis2的最新(1.5)版本。现在,.NET服务甚至不会承认我的请求。

我设法获得“分块”关闭(其中“存根”是由WSDL2Java的生成的类型MumbleStub的变量,并且我显示什么是几行的代码作为一个可怕线这里):

stub._getServiceClient().getOptions().setProperty( HTTPConstants.CHUNKED, Boolean.FALSE);

..所以至少服务认识我的要求的的请求,尽管一个坏的:“HTTP/1.1 400 Bad Request”是响应现在(而不是一个“前奏/摘要”页递给我一张链接到WSDL)。

我注意到,轴(“1”)的请求有不同的内容类型报头(文本/ XML,VS应用/皂XML),和我想知道如何改变这种请求报头,如果是实际上的问题。

或者,已经有人人都有这个问题?该问题是真的(不可显示在这里,因为它看起来像“元素注入”的博客引擎)...... XML版本 - “1.0” ...“XML元介绍标签” Axis2所添加到请求的开始?

WS-死星,确实如此。

有帮助吗?

解决方案

至于你所提到的不同内容类型标题我想你的客户端尝试发送SOAP 1.2请求和第三方应用程序只能识别SOAP 1.1

尝试改变所使用的肥皂版本AFAIK AXIS2默认使用SOAP 1.2

stub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top