12

我得到了错误"Transport level information does not match with SOAP Message namespace URI"。请求您提供解决问题的详细信息。

我在客户端设置了以下内容。

HttpTransportProperties.ProxyProperties proxyProperties = new HttpTransportProperties.ProxyProperties();
proxyProperties.setProxyName(proxyAddress);
proxyProperties.setProxyPort(proxyPort);
stub._getServiceClient().getOptions().setProperty(HTTPConstants.CHUNKED,Boolean.FALSE);
stub._getServiceClient().getOptions().setProperty(HTTPConstants.PROXY, proxyProperties);
stub._getServiceClient().getOptions().setProperty(HTTPConstants.HEADER_CONTENT_TYPE,"application/soap+xml");
stub._getServiceClient().getOptions().setProperty("type","application/soap+xml");
stub._getServiceClient().getOptions().setProperty(HTTPConstants.HEADER_SOAP_ACTION, Action_URL);
stub._getServiceClient().getOptions().setProperty ( HTTPConstants.HTTP_PROTOCOL_VERSION, HTTPConstants.HEADER_PROTOCOL_11 ) ;
stub._getServiceClient().getOptions().setProperty ( "Transfer-Encoding", "chunked" ) ;
stub._getServiceClient().getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, "true");

你能帮忙解决这个问题吗?

4

2 回答 2

20

如果接收到的消息的内容类型和 SOAP 版本(由 SOAP 信封的命名空间 URI 确定)不匹配,则会出现该错误。例如,如果 Axis2 接收到内容类型为 SOAP 1.2 的消息text/xml,它将触发该错误。

于 2013-06-02T14:00:36.470 回答
0

Joe - 如果您收到此错误,那么我假设您正在尝试访问一个非常旧的服务,并且您可能使用的是 Axis 2.0 版本。您将无法通过使用 Axis 或 CXF 创建客户端来调用该服务。我花了几天时间试图弄清楚这一点。最终,我最终使用 SAAJ API 创建请求 WSDL 并将其发布到服务。

这很容易,让您远离试图弄清楚 RPC/Literal/Document 样式等。

看到这个帖子 -帖子

于 2014-12-11T03:46:07.867 回答