我们想在WSO2 ESB上创建一个WSDL代理。 WSDL定义了2个端口,每个端口定义自己的端口 操作。 问题是当我创建WSDL代理并指定其中一个端口时,与该端口关联的操作未公开,而是暴露与端口2相关的操作...看起来无论我指向哪个端口,操作暴露无变化.. 我的问题是如何使这项工作,或WSO2 ESB不支持WSDL中的多个端口?
......
<wsdl:portType name="IxxxxService">
<wsdl:operation name="xxxRecordEntry">
<wsdl:input
wsaw:Action="http://tempuri.org/IxxxService/xxxRecordEntry"
message="tns:IxxxService_xxxRecordEntry_InputMessage" />
<wsdl:output
wsaw:Action="http://tempuri.org/IxxxService/xxxRecordEntryResponse"
message="tns:IxxxService_xxxRecordEntry_OutputMessage" />
</wsdl:operation>
<wsdl:operation name="xxxRecord">
<wsdl:input
wsaw:Action="http://tempuri.org/IxxxServiceMoniker/xxxRecord"
message="tns:IxxxServiceMoniker_xxxRecord_InputMessage" />
<wsdl:output
wsaw:Action="http://tempuri.org/IxxxServiceMoniker/xxxRecordResponse"
message="tns:IxxxServiceMoniker_xxxRecord_OutputMessage" />
</wsdl:operation>
</wsdl:portType>
<wsdl:portType name="IxxxServiceMoniker">
<wsdl:operation name="xxxRecord">
<wsdl:input
wsaw:Action="http://tempuri.org/IxxxMoniker/xxxRecord"
message="tns:IxxxServiceMoniker_xxxRecord_InputMessage" />
<wsdl:output
wsaw:Action="http://tempuri.org/IxxxServiceMoniker/xxxRecordResponse"
message="tns:IxxxServiceMoniker_xxxRecord_OutputMessage" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="BasicHttpBinding_IxxxService"
type="tns:IxxxService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="xxxRecordEntry">
<soap:operation
soapAction="http://tempuri.org/IxxxService/xxxRecordEntry"
style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="BasicHttpBinding_IxxxMoniker"
type="tns:IxxxMoniker">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="xxxRecord">
<soap:operation
soapAction="http://tempuri.org/IxxxMoniker/xxxRecord"
style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="xxxService">
<wsdl:port name="BasicHttpBinding_IxxxService" binding="tns:BasicHttpBinding_IxxxService">
<soap:address location="http://aaaaa:pppp/xxxService.xxxService.svc"/>
</wsdl:port>
<wsdl:port name="BasicHttpBinding_IxxxServiceMoniker" binding="tns:BasicHttpBinding_IxxxServiceMoniker">
<soap:address location="http://aaaaa:pppp/xxxService.xxxService.svc/mo"/>
</wsdl:port>
</wsdl:service>
代理配置
<proxy xmlns="http://ws.apache.org/ns/synapse" name="testing20" transports="https,http" statistics="disable" trace="disable" startOnLoad="true">
<target>
<outSequence>
<send/>
</outSequence>
<endpoint>
<wsdl service="xxxService" port="BasicHttpBinding_IxxxService" uri="http://xxx:ppp/xxxLoggerService.xxxService.svc?wsdl"/>
</endpoint>
</target>
<publishWSDL uri="http://xxx:ppp/xxxLoggerService.xxxService.svc?wsdl"/>
<parameter name="useOriginalwsdl">true</parameter>
<parameter name="modifyUserWSDLPortAddress">true</parameter>
<description></description>
</proxy>
答案 0 :(得分:0)
您的代理配置是什么?哪个操作引起了问题? 创建代理时,可以禁用不需要的绑定。也就是说,您可以禁用soap11或soap12。
eg:<parameter name="disableSOAP12">true</parameter>