1
我正在使用CXF庫編寫SOAP客戶端,這裏我的要求是將SOAP請求轉移到另一個作爲我的代理的Web服務。已經使用下面的代碼來設置代理在我的SOAP客戶端如何避免在CXF庫(SOAP)中使用CONNECT http方法
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");
但這種代碼拋出下面的錯誤
「產生java.io.IOException:通過代理無法隧道代理返回 「HTTP/1.1 405方法不允許」。
按我的調查來這個錯誤,因爲CXF庫使用「CONNECT」
HTTP方法的隧道但是SOAP請求該CONNECT方法
執行不提供代理服務器(proxyserver.com )。現在代理
服務器團隊說我們只能提供「GET」和「POST」HTTP方法。
這意味着我必須手動創建SOAP請求並使用POST或GET方法發送。但這是我們希望避免手動創建SOAP請求的方式。
所以我的問題是有沒有辦法擺脫這種或我可以覆蓋
「CONNECT」的方法?任何答案鏈接都將有所幫助。另請參閱附件瞭解更多詳情。
對不起,無法發表評論。 – Stickerbomby
我想這不是因爲SOAP操作。我需要抑制CONNECT方法一些 – swapnil
你在用什麼IDE? – Stickerbomby