0

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

1 回答 1

0

你的代理配置是什么?哪些操作引起了问题?创建代理时,您可以禁用不需要的绑定。也就是说,您可以禁用soap11 或soap12。

eg:<parameter name="disableSOAP12">true</parameter>
于 2013-06-20T14:46:32.837 回答