使用axis2设置http请求标头的内容类型时出现问题

时间:2013-01-29 13:53:15

标签: web-services axis2 content-type webservice-client

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

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

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

1 个答案:

答案 0 :(得分:1)

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

This page说明了如何更改SOAP版本。

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

将SOAP版本设置为1.1。