我们想在 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>