如何覆盖.NET Web服务的Axis2请求头?
-
22-07-2019 - |
题
我不得不使用第三方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);
不隶属于 StackOverflow