namespace issue when creating WSD provider using external WSDL

Hi All,

We are currently migrating technology base and moving one webservice from one tool to webMethods. But since that webservice is shared with our customer, we do not want to interface to change. SO we have decided to use the WSDL and create a contract first provider WSD at webMethods.

Heres how our WSDL looks like.

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
 xmlns:lmi="[URL]http://schemas.xyz.com/lmi/services/LMIService/v1[/URL]"
 xmlns:soap="[URL]http://schemas.xmlsoap.org/wsdl/soap/[/URL]" 
 xmlns:xsd="[URL]http://www.w3.org/2001/XMLSchema[/URL]"
 xmlns:wsdl="[URL]http://schemas.xmlsoap.org/wsdl/[/URL]"
 name="LMIService"
 targetNamespace="[URL]http://schemas.xyz.com.au/lmi/services/LMIService/v1[/URL]">
 <wsdl:types>
  <xsd:schema 
   attributeFormDefault="unqualified" elementFormDefault="qualified"
   targetNamespace="[URL]http://schemas.xyz.com/lmi/services/LMIService/v1[/URL]">
   <xsd:element name="PolicyRequest" type="xsd:anyType" />
   
   <xsd:element name="PolicyResponse" type="xsd:anyType" />
   
  </xsd:schema>
 </wsdl:types>

<wsdl:portType name="LMIService_PortType">
<wsdl:operation name="PolicyRequest">
<wsdl:input message="lmi:PolicyRequestMessage" />
<wsdl:output message="lmi:PolicyResponseMessage" />
</wsdl:operation>
</wsdl:portType>


.................
..................

Now, when we use the default wizard for creating a WSD using this WSDL, this creates a connector with input “lmi:PolicyRequest”. It takes the prefix “lmi:” as expected.

Note: There is no definition of PolicyRequest i.e., it is considered as an object.

But when we call the service using the following request snippet, the request doesn’t contain any prefix.

<soapenv:Envelope xmlns:soapenv="[URL]http://schemas.xmlsoap.org/soap/envelope/[/URL]" xmlns:v1="[URL]http://schemas.xyz.com/lmi/services/LMIService/v1[/URL]">
   <soapenv:Header/>
   <soapenv:Body>
      <PolicyRequest xmlns:v1="[URL]http://www.xyz.com/schemas/lmi/services/LMIService/v1[/URL]">
         <ApplicationBatch>
            <Identifier UniqueID="10188"/>
            <Application>
  .............
  .............

Can anyone please help me in locating where exactly the mismatch is? Can I do changes on the WSD side to add appropriate prefix?

Thanks in advance,
Ninad Patil

Hi Ninad, I think, you have to do something with this : elementFormDefault=“qualified”

Ninad,
Can you provide a little more detail on what your doing? You taken the WSDL and generated a provider service in webMethods IS (Version?) and you have also created a consumer with the same WSDL within webMethods IS ? The request message doesn’t seem to match the WSDL you posted, not just the namespace.

Hi Sumit,

Thanks. Nice to talk to you again. We have already put the attribute elemenetFormDefault = “qualified” in the WSDL. This will help pick up the namespace prefix. Unfortunately, I cannot tinker with the WSDL.

Hi Mark,

Yes, we have created a Provider service using an external WSDL. I am testing using SOAP UI. The consumer will not be an IS service. As you can see, the input element ‘PolicyRequest’ has been defined as anyType. So it creates the input as object and we can pass anything to this object. In the request here, we are passing Application Batch. The Request has been taken from our live environment.

Thanks and Regards,
Ninad Patil

Hi Ninad
We got lost in the forum move. Did you resolve this or still need help?

Mark

Hi Mark,

Still need help on this.

Lost alert settings as well on this thread…

Thanks,
Ninad Patil

Hi Mark,

Not sure if my last post reached you. I still need help with this one.

Thanks and Regards,
Ninad Patil

Ninad,
Sorry for the delay, did you get this worked out? You are using SOAPUI to test against the webMethods IS provider, are you using the WSDL from the webMethods IS service to generate your SOAP request withing SOAPUI? And what version of IS are you using?