Topic by Tushar Kapadi
Hello,
I am trying to create an organization from webMethods 8.2 using SOAP but having some namespace issues.
I downloaded WSDL from https://infoblox.custhelp.com/cgi-bin/infoblox.cfg/services/soap?wsdl=generic link and created a web service connector in webMethods. I assigned WS Security handler to the web service descriptor and able to invoke QueryCSV operation successfully. I am receiving proper data back from QueryCSV as well.
Next, I wanted to create an Organization in RightNow through webMethods. I tried different options but no luck. I am able to create Orgnaization through SOAPUI using following request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="urn:generic.ws.rightnow.com/v1_2" xmlns:ns7="urn:messages.ws.rightnow.com/v1_2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<soapenv:Header>
<ns7:ClientInfoHeader soapenv:mustUnderstand="0">
<ns7:AppID>Generic Create Sample</ns7:AppID>
</ns7:ClientInfoHeader>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username>XXXXXXXX</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXXXXX</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ns7:Create>
<ns7:RNObjects xsi:type="ns2:GenericObject">
<ns2:ObjectType>
<ns2:TypeName>Organization</ns2:TypeName>
</ns2:ObjectType>
<ns2:GenericFields dataType="STRING" name="Name">
<ns2:DataValue>
<ns2:StringValue>Test Org 15</ns2:StringValue>
</ns2:DataValue>
</ns2:GenericFields>
</ns7:RNObjects>
</ns7:Create>
</soapenv:Body>
</soapenv:Envelope>
But when I try to invoke Create operation in webMethods, there was no place for me to pass GenericFields as parameter in Create Request. I created different schema and got to the point where I could pass required information as per SOAP UI message. When I invoke Create operation in webMethods, it throws following exception:
RightNowSyncService|urn:wsdl.ws.rightnow.com/v1_2 failed
Found out-of-order or unrecognized node ObjectType|urn:generic.ws.rightnow.com/v1_2 while parsing node of type RNObject|urn:base.ws.rightnow.com/v1_2
Failed in constructing object CreateMsg : NULL input can not be deserialized
Failed in setting value for element RNObjects array position 0 of object CreateMsg
Failure in setting value for object Create element Create of type messages_ws_rightnow_com_v1_2::CreateMsg
NULL returned from the Create deserializer due to missing or invalid XML
I did some research and could reproduce the issue in SOAP UI as well. If I remove the namespace, SOAP UI also throws the same error message--- if I remove xsi:type="ns2:GenericObject" from RNObjects and run, it throws the same excpetion as above. Here is the soap message after removing xsi:type="ns2:GenericObject":
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="urn:generic.ws.rightnow.com/v1_2" xmlns:ns7="urn:messages.ws.rightnow.com/v1_2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<soapenv:Header>
<ns7:ClientInfoHeader soapenv:mustUnderstand="0">
<ns7:AppID>Generic Create Sample</ns7:AppID>
</ns7:ClientInfoHeader>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username>XXXXXX</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">XXXXXX</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
<soapenv:Body>
<ns7:Create>
<ns7:RNObjects>
<ns2:ObjectType>
<ns2:TypeName>Organization</ns2:TypeName>
</ns2:ObjectType>
<ns2:GenericFields dataType="STRING" name="Name">
<ns2:DataValue>
<ns2:StringValue>Test Org 15</ns2:StringValue>
</ns2:DataValue>
</ns2:GenericFields>
</ns7:RNObjects>
</ns7:Create>
</soapenv:Body>
</soapenv:Envelope>
Any help would be appreciated.
Thanks,
Tushar