Skip to Content
author's profile photo
Former Member

XI 2.0 Standalone J2SE SOAP Adapter as client - SOAP:encodingStyle

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 comment
10|10000 characters needed characters exceeded

1 Answer

  • author's profile photo
    Former Member
    Posted on Mar 02, 2005 at 07:41 PM

    Hi,

    You could use the webMethods XI adapter to create the connection.

    Best Regards,

    Sander

    Add comment
    10|10000 characters needed characters exceeded