问题
I am a newbie in the world of WSO2 EST so my question below could be somewhat pathetic but I just wanted to ask to get help asap.
I have a WSDL of a remote web service but it is only presented in SOAP 1.2. My application can only work with SOAP 1.1 WSDL's. So I installed WSO2 ESB, added new proxy service, namely pass-through proxy, and on the "deployed services" list page, I right-clicked WSDL 1.1 on the newly created service row and used "save as" to save WSDL 1.1 version. However, the only operation available in this WSDL is "mediate" and that's all.
What I want to do is just to be able to have all operations available on the original WSDL without altering anything. I want to consume the same operations using the WSDL (1.1) served by WSO2 ESB that communicates with the remote web service using SOAP 1.2.
Thanks in advance.
回答1:
You need to specify 'Publish WSDL' options and create the WSDL accordingly. If Publish WSDL options are not specified it will show only the mediate operation.
Read the following docs to know more about this.
http://docs.wso2.org/wiki/display/ESB470/Adding+a+Proxy+Service#AddingaProxyService-PublishWSDLOptions
http://maharachchi.blogspot.com/2013/07/publishwsdl-option-in-wso2-esb-explained.html
EDIT - You can specify the format attribute as SOAP 1.2 in the endpoint in your proxy configuration to convert all requests to SOAP 1.2. Sample Proxy config is as follows
<proxy xmlns="http://ws.apache.org/ns/synapse" name="EchoProxy" transports="https,http" statistics="disable" trace="disable"
startOnLoad="true">
<target>
<outSequence>
<send/>
</outSequence>
<endpoint>
<address uri="http://localhost:8280/services/echo" format="soap12"/>
</endpoint>
</target>
<publishWSDL uri="http://localhost:8282/services/echo?wsdl"/>
<description/>
</proxy>
来源:https://stackoverflow.com/questions/18248159/wso2-esb-as-a-pure-pass-through-wsdl-server-with-all-original-operations