我们有一个网络服务客户端,应该可以使用SOAP 1.1
和SOAP 1.2
。目前我们遇到的问题是,设置的内容类型(代码)不是实际的内容类型(对SoapUI的监控显示了我们请求的不同内容类型)。
我们使用java.net.URLConnection
private final String contentTypeSOAP12 = "application/soap+xml";
private void createEndpoint() throws MalformedURLException {
endpoint = new URL(new URL(webserviceConf.getUrl()), "", new URLStreamHandler() {
@Override
protected URLConnection openConnection(URL url) throws IOException {
URL target = new URL(url.toString());
URLConnection connection = target.openConnection(getProxy());
connection.setConnectTimeout(CONNECT_TIMEOUT);
connection.setReadTimeout(webserviceConf.getReadTimeout());
setKeepAlive(connection);
connection.setRequestProperty("TESTHEADER", "WERT1"); // works
connection.setRequestProperty("Content-Type", contentTypeSOAP12);// does not work
return connection;
}
});
}
通过监视SoapUI
上的连接,我们可以看到连接头参数是
这表明我们能够为连接设置参数(参见" TESTHEADER"),但由于某种原因,我们对内容类型的设置不起作用。
我们尝试设置SOAP 1.2
的内容类型时,我们的连接具有SOAP 1.1
的内容类型。
答案 0 :(得分:0)
显然,您使用的SOAP Framework是在获取URLConection后将Content-Type标头设置为SOAP 1.1值。因此,覆盖URLStreamHandler的解决方法不起作用。 SOAP框架的设置中应该有一些东西指定应该使用SOAP 1.2的HTTP绑定。
也许,this post有帮助。
Btw,使用哪个SOAP Framework?