cancel
Showing results for 
Search instead for 
Did you mean: 

XI 7.0 SOAP Adapter

Former Member
0 Kudos

Hi experts,

I need help on using the SOAP Adapter to call an external WebService. This WebService requires a request with an attachment, like

<echo xmlns:xop='http://www.w3.org/2004/08/xop/include'>

<msg>hello world</msg>

<binary>

<xop:Include href='binary'/>

</binary>

</echo>

or

<echo xmlns:xop='http://www.w3.org/2004/08/xop/include'>

<msg>hello world</msg>

<binary>cid:110032771880</binary>

</echo>

In both cases the SOAP request includes an attachment, referenced in the SOAP body by the attachment's content-ID.

Unfortunatly I'm not able to configure the PI SOAP Adapter in the right way to build the required request.

Here is my Integration scenario description:

- I configured a FileAdapter which reads a payload and an attachment. With both files PI creates a PI message and forwards it to the message mapping.

- The message mapping is based on a graphical mapping from an imported XSD source of the source file and an imported WSDL from the WebService.

- At least I configured a SOAPAdapter to receive the message and call the external WebService. I selected the checkbox "Keep attachment" and tried both, HTTP protocol with SOAP and HTTP (Axis) with Axis, but I had the same problem. The attachment is present on the WebService side, but it has no reference inside the SOAP-Body.

My question is:

How and where can I define/modify the build SOAP request inside PI, so that the link between the attachment and the parameter in the SOAP body will be created? Maybe it's necessary to prepare the PI message in the right way, so that the SOAP Adapter know what to do? Or does the SOAP Adapter always just add the Attachment to the SOAP message? But then how does the external WebService should know which attachment (content-id) is uased for which parameter?

Maybe the PI message must have a XML payload content like

<echo>

<msg>hello world</msg>

<binary>myAttachment</binary>

</echo>

and an attachment called myAttachment?

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member537867
Active Contributor
0 Kudos

Hi Holger Bethke ,

Any webservice can accept attachment. You need not explicitly mention that in wsdl, as attachment is not part of envelope. If your webservice is written in such a way that it extracts attachment and do the needful, it will be able to extract the attachment else it wont readt the attachment.

You can try this in XI itself. Create a normal webservice hosted in XI Server, provide the wsdl to the the web service consumer. Invoke the Web Service from WS Client and send attachment. XI will be able to receive the attachment.

Please go through the link below to understand WS architecture with attachment.

http://java.sun.com/developer/EJTechTips/2005/tt0425.html

And also

http://www.w3.org/TR/SOAP-attachments

http://www.theserverside.com/tt/articles/article.tss?l=SendingAttachmentsWithSOAP

Regards,

Vinod.