2012-02-16 20 views
2

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

我想:

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

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

  3. 配置HTTP传输发件人,并指定相应的参数。

我得到的最好的是:

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

那么,究竟做了我错了,我应该怎么办呢?谢谢。

+0

你确定......你设定在正确的文件transportSender参数?有一个关于您的ESB版本的文档页面可能会对您有所帮助: https://docs.wso2.com/display/ESB403/HTTP+Basic+Authentication+over+a+Proxy+Server – 2015-10-06 00:05:10

回答

3

您的代理服务器是否有任何身份验证?如果是的话,它使用基本身份验证,你需要指定发出请求之前followoing性能..

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

第一个属性设置与编码的用户名和密码以base64的代理授权HTTP传输头由预期HTTP基本认证。

第二个属性使得出站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> 
+0

对不起,但这是不是我的问题的解决方案。我们的公司代理不需要认证。我只想访问,例如说:“http:// www.webserviceX.NET/GetQuote”,而不是WSO2示例Axis2服务器服务。任何指定代理(而不是WSO2 ESB提供的代理服务)的简单方法? – 2012-02-21 12:39:06

+0

顺便说一句,为什么不能有''''proxyAddress>'或类似的子元素? – 2012-02-21 12:46:38

相关问题