我正在尝试使用WSO2 ESB(版本4.8.1)来调用外部托管的SOAP Web服务。为了尝试一下,我使用公共Web服务来获取天气信息(http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL),更具体地说是GetWeatherInformation操作。
我使用soapUI工具成功使用了Web服务。
我是SOAP和ESB的新手,因此我尝试关注一些博客条目,但我一直在收到错误。我尝试使用代理服务,有效负载工厂和发送但仍然没有管理。有人可以帮我设置一下吗?
由于
答案 0 :(得分:1)
这里有一个示例API来调用GetWeatherInformation:
<?xml version="1.0" encoding="UTF-8"?>
<api xmlns="http://ws.apache.org/ns/synapse"
name="testws3api"
context="/testws3api">
<resource methods="GET" url-mapping="/GetWeatherInformation">
<inSequence>
<payloadFactory media-type="xml">
<format>
<GetWeatherInformation xmlns="http://ws.cdyne.com/WeatherWS/"/>
</format>
<args/>
</payloadFactory>
<send>
<endpoint>
<address uri="http://wsf.cdyne.com/WeatherWS/Weather.asmx" format="soap11"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</resource>
</api>
您只需向http://esb.hostname:8280/testws3api/GetWeatherInformation发送GET http请求(使用SoapUI或在您的互联网浏览器中输入此地址),您将从Weather WS中获取XML响应
答案 1 :(得分:0)
它适用于部署在WSO2 ESB v4.8.1中的代理配置:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="testws3"
transports="https http"
startOnLoad="true"
trace="disable">
<target>
<endpoint>
<wsdl service="Weather"
port="WeatherSoap12"
uri="http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"/>
</endpoint>
<outSequence>
<send/>
</outSequence>
</target>
<publishWSDL uri="http://wsf.cdyne.com/WeatherWS/Weather.asmx?WSDL"/>
</proxy>