【问题标题】:How to avoid using CONNECT http method while in CXF library (SOAP)如何避免在 CXF 库 (SOAP) 中使用 CONNECT http 方法
【发布时间】:2016-01-02 03:40:52
【问题描述】:

我正在使用 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");

但是这段代码抛出了错误

"java.io.IOException: 无法通过代理隧道。代理返回 “不允许使用 HTTP/1.1 405 方法”。

根据我的调查,出现此错误是因为 CXF 库使用“CONNECT”

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

代理服务器(proxyserver.com)无法实现。现在代理

服务器团队说我们只能提供“GET”和“POST”HTTP 方法。

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

所以我的问题是有什么办法可以摆脱这个或者我可以覆盖

“连接”方法?任何答案链接都会有所帮助。有关更多详细信息,请参阅附件。

【问题讨论】:

    标签: java soap cxf soap-client x-http-method-override


    【解决方案1】:

    您没有在任何地方添加 SOAPAction

    【讨论】:

    • 抱歉,无法发表评论。
    • 我猜这不是因为 SOAP 操作。我需要以某种方式抑制 CONNECT 方法
    • 你用的是什么IDE?
    猜你喜欢
    • 1970-01-01
    • 2019-08-14
    • 2014-12-19
    • 2021-05-21
    • 2021-09-19
    • 2015-11-11
    • 1970-01-01
    • 2019-11-10
    • 2017-09-24
    相关资源
    最近更新 更多