API Gateway: Unable to find payload element QNames for BindingOperation
search cancel

API Gateway: Unable to find payload element QNames for BindingOperation


Article ID: 241352


Updated On:


CA API Gateway


Gateway unable to properly load the custom WSDL file.

2021-10-21T12:17:17,687+0200 INFO 1055 com.l7tech.server.service.resolution.SoapOperationResolver: 103: Unable to find payload element QNames for BindingOperation (xxxxxxxx)


Release : 10.0

Component : API GATEWAY


When a gateway starts, ServiceCache calls SoapOperationResolver to resolve published services using the QNames of the payload elements and validate the WSDL of each service. The services won't be resolved if their WSDLs miss any expected data such as in Binding Operation, the element "input" or the attribute "use" of the element "body" of "input".  The service resolution mapping will not contain any match between an unresolved service and its SOAP QNames of the binding operation.  So, the service consumption for a certain soap:operation will be failed since the service resolution mapping cannot find any unresolved service mapping to the soap:operation.

Here is a reference (w3cschool.com XML WSDL) showing <For each operation the corresponding SOAP action has to be defined. You must also specify how the input and output are encoded. In this case we use "literal".>


  The solution is to add an attribute "use" to the element, [binding/operation/input/body], so it is not necessary to disable the WSDL validation by enabling "Allow requests intended for operations not supported by the WSDL".


<wsdl:binding name="e-pgbmatch-soap-apiBinding" type="tns:e-pgbmatch-soap-apiPortType">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="Sample">
      <soap:operation soapAction="Sample" style="document" />
        <soap:body use="literal" parts="payload" />
        <soap:body parts="payload" />
      <wsdl:fault name="fout">
        <soap:fault use="literal" name="fout" namespace="" />