1

我有一个访问服务(基于 Axis2)的 Web 服务客户端代码。我尝试使用以下代码更改请求标头中的内容类型。

ServiceClient serviceClient = stub._getServiceClient();
Options options = serviceClient.getOptions();
options.setProperty(HTTPConstants.CHUNKED, "true");
options.setProperty(Constants.Configuration.ENABLE_HTTP_CONTENT_NEGOTIATION,"true");
options.setProperty(Constants.Configuration.MESSAGE_TYPE,"text/xml");

但是上面的代码不适用于内容类型text/xml。但是当我使用内容类型时它可以工作。application/xml我无法将内容类型设置为text/xml

有人可以给我一个解决方案吗?

4

1 回答 1

1

您的客户端可能使用错误的 SOAP 版本来格式化其请求。text/xml是 SOAP 1.1 内容类型。application/soap+xml是 SOAP 1.2 的内容类型。

此页面说明如何更改 SOAP 版本。

serviceClient.getOptions().setSoapVersionURI(
              org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);

例如,将 SOAP 版本设置为 1.1。

于 2013-01-30T19:31:39.520 回答