首页 文章

如何配置WSO2 ESB 4.0.3以使用公司代理访问外部Web服务(通过HTTP)

提问于
浏览
2

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

我试过了:

  • 编辑 <transportSender name="http" ... > 并指定 "http.proxyHost""http.proxyPort" 等参数 .

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

  • 配置 HTTP Transport Sender 并指定适当的参数 .

我得到的最好的是:

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

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

1 回答

  • 3

    您的代理服务器有任何身份验证吗?如果是,并且它使用Basic Auth,则需要在发出请求之前指定followoing属性 .

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

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

    第二个属性使得外出URL成为Proxy Server可理解的完整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>
    

相关问题