2

我正在尝试使用WSO2 ESB 4.0.3访问外部 Web 服务(Intranet 外部),但我不知道如何配置代理以让请求向外发送。我可以毫无问题地从我的基本 Java 客户端应用程序通过 HTTP 发送 SOAP 消息;我可以使用Apache HttpComponents指定代理详细信息。所以,连接细节没问题。

我试过了:

  1. 编辑<transportSender name="http" ... >和指定参数,如"http.proxyHost""http.proxyPort"

  2. 设置全局参数<parameter name="Proxy"> ...

  3. 配置HTTP 传输发送器并指定适当的参数。

我得到的最好的是:

 ERROR_CODE = 101503, ERROR_MESSAGE = Connection refused or failed for : ...

那么,我做错了什么,我应该怎么做呢?谢谢。

4

1 回答 1

3

您的代理服务器是否有任何身份验证?如果是并且它使用基本身份验证,您需要在发送请求之前指定以下属性。

<property name="Proxy-Authorization" expression="fn:concat('Basic', base64Encode('userName:password'))" scope="transport"/>
<property name="POST_TO_URI" value="true" scope="axis2"/> 

第一个属性设置 Proxy-Authorization HTTP 传输标头与 HTTP 基本身份验证所期望的 base64 编码的用户名和密码。

第二个属性使传出 URL 成为代理服务器可以理解的完整 URL。

以下是一个示例代理配置...

<proxy name="StockQuoteProxy" startOnLoad="true">
<target>
<inSequence>
<property name="Proxy-Authorization" expression="fn:concat('Basic ', base64Encode('udayanga:test123'))" scope="transport"/>
<property name="POST_TO_URI" value="true" scope="axis2"/>
<send>
<endpoint>
<address uri="http://www.wso2.com:9000/services/SimpleStockQuoteService"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
<publishWSDL uri="file:repository/samples/resources/proxy/sample_proxy_1.wsdl"/>
</proxy>
于 2012-02-18T06:03:59.537 回答