2015-10-05 32 views
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」的方法?任何答案鏈接都將有所幫助。另請參閱附件瞭解更多詳情。

回答

0

您沒有在任何地方添加SOAPAction

+0

對不起,無法發表評論。 – Stickerbomby

+0

我想這不是因爲SOAP操作。我需要抑制CONNECT方法一些 – swapnil

+0

你在用什麼IDE? – Stickerbomby

相關問題