WSO2 ESB呼叫SOAP端点无法执行操作

时间:2019-04-16 16:11:34

标签: soap wsdl call wso2esb endpoint

我想通过WSO2 ESB中的Action调用SOAP端点URL。我可以调用SOAP URL并获得整个wsdl响应,但是我无法执行操作。

让我的wsdl回复

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions ....>
 <wsdl:types>
        <xs:schema  ..>...</xs:schema>
</wsdl:types>
<wsdl:service>..</wsdl:service>

 <wsdl:portType name="..">

<wsdl:operation name="AAA">
            <wsdl:input message="tns:in"/>
            <wsdl:output message="tns:out"/>
            <wsdl:fault name="fault1" message="tns:Error"/>
        </wsdl:operation>
<wsdl:operation name="BBB">
            <wsdl:input message="tns:in"/>
            <wsdl:output message="tns:out"/>
            <wsdl:fault name="fault1" message="tns:Error"/>
        </wsdl:operation>
<wsdl:operation name="CCC">
            <wsdl:input message="tns:in"/>
            <wsdl:output message="tns:out"/>
            <wsdl:fault name="fault1" message="tns:Error"/>
        </wsdl:operation>
......
......
</wsdl:portType>
...

这是我的WSO2 ESB代码,用于调用SOAP端点

<payloadFactory media-type="xml">
        <format>
          <soapenv:Envelope
            xmlns:app="...xsd"
            xmlns:com=".....xsd"
            xmlns:ser="...xsd" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
            <soapenv:Header/>
            <soapenv:Body>
              <ser:...Request>
                <app:ApplicationHeader>
                  <app:...>$1</app:...>
                  <app:...>$2</app:...>

                </app:ApplicationHeader>
                <ser:DataHeader>
                  <ser:....>$3</ser:...
                  <ser:...>$4</ser:...>

                </ser:DataHeader>
              </ser:...Request>
            </soapenv:Body>
          </soapenv:Envelope>
        </format>
        <args>
          <arg value="1"/>
          <arg value="2"/>
          <arg value="3"/>
          <arg value="4"/>

        </args>
      </payloadFactory>
      <header name="Action" scope="default" value="AAA"/>

      <call blocking="true">
        <endpoint>
          <address uri="http:/URL/>
        </endpoint>
      </call>
      <respond/>

当我调用此代码时,我将获得整个WSDL响应而不是操作“ AAA”

但我应该执行此操作

1 个答案:

答案 0 :(得分:0)

您似乎已将wsdl url指定为端点地址。这就是为什么您收到wsdl文件和一个错误的原因,该错误不是Soap信封而是它得到定义。

您应该使用wsdl端点。

valueA

或者您可以使用地址端点,但是从wsdl:port部分的wsdl文件中获取URI, 对于此示例,请使用 https://yourServer/service/yourService.asmx 作为URI:

valueB