Author |
Message
|
grasher134 |
Posted: Wed Feb 25, 2015 11:47 pm Post subject: Creating soapenc:arrayType type of element in ESQL. |
|
|
Acolyte
Joined: 22 Oct 2014 Posts: 62
|
Hello,
I need to create request to webservice which contains
Code: |
<personIDs xsi:type="per:ArrayOf_xsd_string" soapenc:arrayType="xsd:string[]" xmlns:per="http://someaddress/xyz/services/xyz"> |
I have working soap request in Soapui
Code: |
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://someser" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<soapenv:Header/>
<soapenv:Body>
<ser:getPersonStatus soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<loginData xsi:type="urn:LoginData" xmlns:urn="urn:someurn">
<pass xsi:type="xsd:string">test</pass>
<userName xsi:type="xsd:string">test</userName>
</loginData>
<personIDs xsi:type="per:ArrayOf_xsd_string" soapenc:arrayType="xsd:string[]" xmlns:per="http://someadress/xyz/services/xyz">
<item xsi:type="xsd:string">11122466</item>
</personIDs>
</ser:getPersonStatus>
</soapenv:Body>
</soapenv:Envelope>
|
I have similar service, but without arrays, it worked fine. I was trying to add "Item" elements but it didn't work. I get "no operation found matching payload" error all the time.
I imported the service using wsdl address from http string and used deployable wsdl.
Here is my code with "Items".
Code: |
SET OutputRoot.XMLNSC.ser:getPersonStatus.loginData.userName = 'test';
SET OutputRoot.XMLNSC.ser:getPersonStatus.loginData.pass = 'test';
SET OutputRoot.XMLNSC.ser:getPersonStatus.personIDs.Item = '123456'; |
Thing that confuses me is that Soap request works even without Items. But my flow doesn't. |
|
Back to top |
|
 |
mgk |
Posted: Thu Feb 26, 2015 8:33 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
|
Back to top |
|
 |
shashivarungupta |
Posted: Thu Feb 26, 2015 12:00 pm Post subject: |
|
|
 Grand Master
Joined: 24 Feb 2009 Posts: 1343 Location: Floating in space on a round rock.
|
Some time back I faced similar error, you need to make sure that you're using correct 'Binding' in the SOAPInput and 'Binding Operation' in SOAPRequest Nodes (if at all you're using them).
There are few other topics of similar issue, can be found in this forum, if searched.
 _________________ *Life will beat you down, you need to decide to fight back or leave it. |
|
Back to top |
|
 |
grasher134 |
Posted: Thu Feb 26, 2015 9:25 pm Post subject: |
|
|
Acolyte
Joined: 22 Oct 2014 Posts: 62
|
Thank you for your help. I found this article already, but I wanted to create the message in XMLNSC domain, because Soap request node composes Soap envelope itself.
Is there any way to do it in XMLNSC?
Quote: |
Some time back I faced similar error, you need to make sure that you're using correct 'Binding' in the SOAPInput and 'Binding Operation' in SOAPRequest Nodes (if at all you're using them). |
I double checked it. I use the same operation, I use in SOAPUI. I use different Soap input and Soap reply nodes, because I'm building a web-service that calls web-service. |
|
Back to top |
|
 |
smdavies99 |
Posted: Fri Feb 27, 2015 12:08 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
What happens when you remove the incoming SOAP envelope?
What domain is the message tree after passing through a SOAPExtract node? _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
grasher134 |
Posted: Fri Feb 27, 2015 1:42 am Post subject: |
|
|
Acolyte
Joined: 22 Oct 2014 Posts: 62
|
smdavies99 wrote: |
What happens when you remove the incoming SOAP envelope?
What domain is the message tree after passing through a SOAPExtract node? |
I don't use incoming message at all now. I hardcoded it in compute module. The problem is in Soap request, which sends request to some 3-rd party web-service. I found that I get 1 warning in wsdl, that I got from this web-service.
Code: |
The wsdlsoap:body must specify a "use" attribute with the value "literal" |
Maybe IIB just imported it wrong way.. I got some warnings during creating message model from wsdl.
I know, I should write it earlier.. My flow is Soap Input + Subflow - Compute - Soap Request - Compute - Soap Reply.
I created the same structure I send from Soapui, using the article you posted earlier. It didn't work either. I compared the messages with wireshark - they are the same.
If i'll deploy this wsdl as http node it will be http request, right. The difference is that I have to create Soap envelope on my own. I'll give it a try and post if it would work. |
|
Back to top |
|
 |
grasher134 |
Posted: Fri Feb 27, 2015 2:38 am Post subject: |
|
|
Acolyte
Joined: 22 Oct 2014 Posts: 62
|
Problematic wsdl was a reason...
I get the correct result now from wireshark, but broker returns me
Code: |
The first child of the SOAP Body does not correspond to any of the operations defined in the specified WSDL definition.
Check that the correct WSDL definition was deployed |
|
|
Back to top |
|
 |
mqjeff |
Posted: Fri Feb 27, 2015 5:54 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
I really think you need to examine the namespaces of the message you are producing, compared to the namespaces that are required.
Remember that IIB needs a namespace set on every element in the tree that belongs to a namespace. |
|
Back to top |
|
 |
|