我有一个访问服务的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
有人可以给我一个解决方案吗?
答案 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。