creating web connector with multiple wsdl

Hi Guys,

I’m getting this error when trying to generate web connector. I have a WSDL which is a combination of different functions One WSDL produces many different functions. This is the direction that we want to go with our existing web services. For example, we could have a Customers WSDL that had many different functions like CustomerAdd, CustomerModify and CustomerInquiry – I was able to combine these wsdl but when trying to create connector getting the below error:

URL: C:\Documents and Settings\c-llewis\Desktop\combine\FinalWSDL.wsdl
Path name:
Top Level Document: C:\Documents and Settings\c-llewis\Desktop\combine\FinalWSDL.wsdl

WSDL code: S-9036

[ISS.0092.9036] Error: Could not process document. Found binding with an invalid PortType reference, no operations were created.

Please advice,
I did’nt get much when i searched over the forum nor over advantage.

Thanks,
Leon

Here I’m pasting the .wsdl script that I used to generate the web service connector :

 <?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="AccountTransaction_Transfer_Services" targetNamespace="http://webmdev/Account"
      xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
      xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
      xmlns:tns="http://webmdev/"
      xmlns:wsdns1="http://localhost/AccountTransaction/Activity/Services/processDepAcctStmt"
      xmlns:wsdns2="http://localhost/AccountTransaction/Transfer/Services/process">
  <wsdl:types>
    <xsd:schema xmlns:tns="http://localhost/AccountTransaction/Activity/Services/processDepAcctStmt" xmlns:SOAP_ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost/AccountTransaction/Activity/Services/processDepAcctStmt" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:import namespace="http://www.abc.com/WebServices" schemaLocation="http://webmdev:5110/IFXSchemas/IFX_DepAcctStmtInq.xsd"/>
    </xsd:schema>
    <xsd:schema xmlns:tns="http://localhost/AccountTransaction/Transfer/Services/process" xmlns:SOAP_ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost/AccountTransaction/Transfer/Services/process" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:import namespace="http://www.abc.com/WebServices" schemaLocation="http://webmdev:5110/IFXSchemas/IFX_IntrlXferAdd.xsd"/>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="IFX_DepAcctStmtInqRq">
    <wsdl:part name="IFX_DepAcctStmtInqRq" element="wsdns1:IFX_DepAcctStmtInqRq"/>
  </wsdl:message>
  <wsdl:message name="IFX_DepAcctStmtInqRqOutput">
    <wsdl:part name="IFX_DepAcctStmtInqRs" element="wsdns1:IFX_DepAcctStmtInqRs"/>
  </wsdl:message>
  <wsdl:message name="IFX_IntrnlXferAddRq">
    <wsdl:part name="IFX_IntrlXferAddRq" element="wsdns2:IFX_IntrlXferAddRq"/>
  </wsdl:message>
  <wsdl:message name="IFX_IntrnlXferAddRqOutput">
    <wsdl:part name="IFX_IntrlXferAddRs" element="wsdns2:IFX_IntrlXferAddRs"/>
  </wsdl:message>
  <wsdl:
   name="AccountTransaction_Transfer_ServicesPortType">
    <wsdl:operation name="IFX_DepAcctStmtInqRq">
      <wsdl:input message="tns:IFX_DepAcctStmtInqRq"/>
      <wsdl: output message="tns:IFX_DepAcctStmtInqRqOutput"/>
    </wsdl: operation>
    <wsdl: operation name="IFX_IntrnlXferAddRq">
      <wsdl:input message="tns:IFX_IntrnlXferAddRq"/>
      <wsdl: output message="tns:IFX_IntrnlXferAddRqOutput"/>
    </wsdl: operation>
  </wsdl:portType>
  <wsdl:binding name="AccountTransaction_Transfer_ServicesBinding" type="tns:AccountTransaction_Transfer_ServicesPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="IFX_DepAcctStmtInqRq">
      <soap: operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl: output>
        <soap:body use="literal"/>
      </wsdl: output>
    </wsdl: operation>
    <wsdl:operation name="IFX_IntrnlXferAddRq">
      <soap: operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl: output>
        <soap:body use="literal"/>
      </wsdl: output>
    </wsdl: operation>
  </wsdl:binding>
  <wsdl:service name="AccountTransaction_Transfer_ServicesService">
    <wsdl:port name="AccountTransaction_Transfer_ServicesPort0" binding="tns:AccountTransaction_Transfer_ServicesBinding">
      <soap:address location="http://webmdev:5110/soap/default"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

This WSDL is a combination of two wsdl file.

The “wsdl:porttype” open tag appears to be invalid.

I believe that the line:

<wsdl:name="AccountTransaction_Transfer_ServicesPortType">

Should read:

<wsdl:portType name="AccountTransaction_Transfer_Services">

I would suggest attempting to validate your WSDL using a tool like XML Spy Enterprise or by using it to create a test case in CrossCheck Networks SOAPSonar Personal Edition.

Mark

Hi Mark,

I still could’nt get this working. The problem here is adding multiple schemas location in one wsdl. I don’t think there is a way to combine this into one there has been a service request made and is planned on the next release. But is there any work around? How can i add multiple schema location between wsdl:Types </wsdl:Types>

I think the problem is that you are attempting to import two XSD’s with the same namespace. Try combining those two XSD’s into one and importing the combined one.

Test your WSDL using a web services testing tool like CrossCheck’s SOAP Sonar. If the testing tool will read the WSDL to generate test cases, then its likely that IS will do so as well.

Again, remember that the “web services connector” is just a Flow service. You don’t need a wizard to generate a Flow service for you, just create doc types from the XSD’s to represent the input and output messages and build your own soap requests.

Break free from the wizards of doom!

Mark