我必须使用在 .NET 2.0 中实现的第 3 方 Web 服务(当然是在 IIS 上)。
我必须制作一个java客户端。我正在使用 wsdl2java 来生成 SOAP 存根。
由于最初的 Apache Axis 项目现在似乎无人维护,而且我在解析来自服务的一些响应时遇到了一些问题,因此我将客户端转换为使用最新 (1.5) 版本的 Axis2。现在,.NET 服务甚至无法识别我的请求。
我设法关闭了“分块”(其中“存根”是由 wsdl2java 生成的 MumbleStub 类型的变量,我在这里将几行代码显示为一个可怕的行):
stub._getServiceClient().getOptions().setProperty( HTTPConstants.CHUNKED, Boolean.FALSE);
.. 所以至少服务将我的请求识别为一个请求,尽管是一个糟糕的请求:“ HTTP/1.1 400 Bad Request
”现在是响应(与为我提供 WSDL 链接的“介绍/摘要”页面相反)。
我注意到 Axis(“1”)请求具有不同的 Content-TYPE 标头(text/xml,vs application/soap-xml),我想知道如何更改此请求标头,如果这实际上是问题。
或者,其他人有这个问题吗?问题真的是 Axis2 添加到请求开头的问题(此处无法显示,因为它看起来像博客引擎的“元素注入”)... xml 版本-“1.0”...“XML 元介绍标签”?
WS-死星,确实。