Hi,
We're setting up the J2SE SOAP Adapter of XI 2.0 to talk to a synchronous web service provided by a webmethods platform.
When we generate the Request message using the WSDL and post it directly via the HTTP test tool the message is understood and a response message is returned.
Here is the Request:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <m:callFP091 xmlns:m="http://destserver/FP091.flows" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <iw1_RECTPE xsi:type="xsd:string">String</iw1_RECTPE> <iw1_DLRCODE xsi:type="xsd:string">String</iw1_DLRCODE> <iw1_FRNCODE xsi:type="xsd:string">String</iw1_FRNCODE> <iw1_JOBNUM xsi:type="xsd:string">String</iw1_JOBNUM> <iw1_CHASIS xsi:type="xsd:string">String</iw1_CHASIS> <iw1_COLOUR xsi:type="xsd:string">String</iw1_COLOUR> <iw1_DESCRIP xsi:type="xsd:string">String</iw1_DESCRIP> <iw1_INVNUM xsi:type="xsd:string">String</iw1_INVNUM> <iw1_CAPAMT xsi:type="xsd:string">String</iw1_CAPAMT> <iw1_INTFRE xsi:type="xsd:string">String</iw1_INTFRE> <iw1_LOC_IND xsi:type="xsd:string">String</iw1_LOC_IND> <iw1_REGISTRATION xsi:type="xsd:string">String</iw1_REGISTRATION> <iw1_ENGINE_NUM xsi:type="xsd:string">String</iw1_ENGINE_NUM> <iw1_VIN_NUM xsi:type="xsd:string">String</iw1_VIN_NUM> </m:callFP091> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
When we try to use the SOAP Adapter and pass it the following message from XI:
<m:callFP091 xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:m="http://destserver/FP091.flows" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > <iw1_RECTPE xsi:type="xsd:string">E1</iw1_RECTPE> <iw1_DLRCODE xsi:type="xsd:string">3009838</iw1_DLRCODE> <iw1_FRNCODE xsi:type="xsd:string">333</iw1_FRNCODE> <iw1_JOBNUM xsi:type="xsd:string">123</iw1_JOBNUM> <iw1_CHASIS xsi:type="xsd:string">2</iw1_CHASIS> <iw1_COLOUR xsi:type="xsd:string">3</iw1_COLOUR> <iw1_DESCRIP xsi:type="xsd:string">4</iw1_DESCRIP> <iw1_INVNUM xsi:type="xsd:string">5</iw1_INVNUM> <iw1_CAPAMT xsi:type="xsd:string">6</iw1_CAPAMT> <iw1_INTFRE xsi:type="xsd:string">7</iw1_INTFRE> <iw1_LOC_IND xsi:type="xsd:string">8</iw1_LOC_IND> <iw1_REGISTRATION xsi:type="xsd:string">9</iw1_REGISTRATION> <iw1_ENGINE_NUM xsi:type="xsd:string">1</iw1_ENGINE_NUM> <iw1_VIN_NUM xsi:type="xsd:string">2</iw1_VIN_NUM> </m:callFP091>
The SOAP adapter wraps the envelope and body around this message, provides an empty header but changes the SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" attribute to SOAP:actor='http://schemas.xmlsoap.org/soap/encoding/'.
The generated SOAP message is:
<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'> <SOAP:Header/> <SOAP:Body> <m:callFP091 xmlns:m='http://196.11.134.83/FP091.flows' SOAP:actor='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'> <iw1_RECTPE xsi:type='xsd:string'>E1</iw1_RECTPE> <iw1_DLRCODE xsi:type='xsd:string'>3009838</iw1_DLRCODE> <iw1_FRNCODE xsi:type='xsd:string'>333</iw1_FRNCODE> <iw1_JOBNUM xsi:type='xsd:string'>123</iw1_JOBNUM> <iw1_CHASIS xsi:type='xsd:string'>2</iw1_CHASIS> <iw1_COLOUR xsi:type='xsd:string'>3</iw1_COLOUR> <iw1_DESCRIP xsi:type='xsd:string'>4</iw1_DESCRIP> <iw1_INVNUM xsi:type='xsd:string'>5</iw1_INVNUM> <iw1_CAPAMT xsi:type='xsd:string'>6</iw1_CAPAMT> <iw1_INTFRE xsi:type='xsd:string'>7</iw1_INTFRE> <iw1_LOC_IND xsi:type='xsd:string'>8</iw1_LOC_IND> <iw1_REGISTRATION xsi:type='xsd:string'>9</iw1_REGISTRATION> <iw1_ENGINE_NUM xsi:type='xsd:string'>1</iw1_ENGINE_NUM> <iw1_VIN_NUM xsi:type='xsd:string'>2</iw1_VIN_NUM> </m:callFP091> </SOAP:Body> </SOAP:Envelope>
This message has no SOAP:encodingStyle attribute and is therefore not understood by the WebMethods web service. Here is the error message from the web service:
[B2BCORE.0076.9201] SOAP Message Coder cannot decode message; no encoding style is specified
How do I configure the outbound SOAP adapter within the XI 2.0 J2SE adapter engine to add the SOAP:encodingStyle attribute to the outbound message?
I have tried playing around with the XMBWS.* parameters outlined in the adapter engine documentation but these don't seem to have any influence on the way the SOAP request message is formed.
Any suggestions would be appreciated.
Regards,
-Derek
Add a comment