如何避免在CXF库(SOAP)中使用CONNECT http方法



我正在使用CXF库编写一个SOAP客户端,这里我的要求是将SOAP请求转移到另一个作为我代理的web服务。我使用以下代码在SOAP客户机

中设置代理
WebService ss = new WebService();
WebServiceSoap port=ss.WebServiceSoap();
Client client = ClientProxy.getClient(port);
HTTPConduit http = (HTTPConduit) client.getConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setProxyServer(System.getProperty("http.proxyHost","proxyserver.com"));
httpClientPolicy.setProxyServerPort(Integer.valueOf(System.getProperty("http.proxyPort","8080")).intValue());
httpClientPolicy.setConnectionTimeout(36000);
http.setClient(httpClientPolicy);
byte[] fileContent={'b','b'};
String res=port.submiFile(fileContent");

但是这段代码抛出了下面的错误

" . io .IOException:无法通过代理建立隧道。代理返回"HTTP/1.1 405方法不允许".

根据我的调查,这个错误是因为CXF库使用"CONNECT"而出现的

http方法来隧道SOAP请求,但是这个CONNECT方法

实现在代理服务器(proxyserver.com)不可用。现在代理

服务器团队说我们只能提供"GET"one_answers"POST" HTTP方法。

这意味着我必须手动创建SOAP请求并使用POST或GET方法发送。但是这是我们想要避免手工创建SOAP请求的方式。

我的问题是有没有办法去掉这个或者我可以重写

"连接"的方法?任何答案链接都会很有帮助。更多细节请见附件。

您没有在任何地方添加SOAPAction

相关内容

  • 没有找到相关文章

最新更新