cancel
Showing results for 
Search instead for 
Did you mean: 

Receiver SOAP Adapter Issue

Former Member
0 Kudos

Hi there,

I need a help pls.

I am using XI 3.0 (sp11) with the Receiver J2EE SOAP Adapter to send the SOAP message to a webservice. When the SOAP messages reaches to the clients webservice, I noticed that its added with extra tags:

SOAP XML see on /sxmb_moni is:

--Start

<?xml version="1.0" encoding="utf-8" ?>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope http://schemas.xmlsoap.org/soap/envelope">;

<env:Header>

<p:msgDetails>

<p:receiverName>SAMPLE LTD</p:receiverName>

</p:receiver>

<p:docType>invoice</p:docType>

<p:docFormat>xcbl40</p:docFormat>

<env:Body>

<c:Invoice xmlns:c="rrn:org.xcbl:schemas/xcbl/v4_0/financial/v1_0/financial.xsd" xmlns:core="rrn:org.xcbl:schemas/xcbl/v4_0/core/core.xsd">

<c:InvoiceHeader>

<c:InvoiceNumber>3785613101</c:InvoiceNumber>

--

--

at the bottom

</c:InvoiceSummary>

</c:Invoice>

</env:Body>

</env:Envelope>

---End

but when it reaches to the clients webservice they see as below:

--Start

<SOAP:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope

at the bottom

</c:Invoice>

</env:Body>

</SOAP:Envelope>

</SOAP:Body>

</SOAP:Envelope>

--End

It stripped off this tag, </env:Envelope>

and added these extra tags

</SOAP:Envelope>

</SOAP:Body>

</SOAP:Envelope>

In the receiver adapter configuration, I have the following fields populated and i have not enabled any

conversion parameters, proxy and message security. I removed the module (1 localejbs/sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean Local Enterprise Bean soap) from processing sequence.

The fields:

Transport Protocol: HTTP

Message Protocol: 1.1

Adapter Engine: IS

TargetURL: https://<hostname>:<port>/soap/submitInvoice

I do not want the adapter to add any SOAP information.

Any suggestion pls.

TIA.

Ranjan

Accepted Solutions (1)

Accepted Solutions (1)

stefan_grube
Active Contributor
0 Kudos

Hi Ranjan,

the SOAP adapter is intended to add a SOAP envelope to a message. That is how all web service tools do.

If you want to create the SOAP envelope by your own and send the message unchanged to the receiver, use the HTTP adapter instead. In this case the SOAP envelope of the response will be untouched as well.

Regards

Stefan

Former Member
0 Kudos

Hi Guys,

THank you very much for the response.

The problem is that since I have already created the SOAP message in XI exactly how the client's webservice is expecting and when I use the adapter, it appends its own header as a result whats happening is that the XI SOAP message (before hitting the receiver adapter, with all the Envelope, header and body) is becoming the Body is the adapter message.

In XI this is how the structure looks like

env:Envelope

xmlns:

env:Header

env:Body

But when the client receives it from the adapter she gets it as,

SOAP:Envelope

xmlns:

SOAP:Header

SOAP:Body

SOAP:Envelope

xmlns:

env:Header

env:Body

As a result the client has not ben able to process the message.

Any suggestion please.

TIA

Ranjan

Former Member
0 Kudos

Hi Stefan/Sudhir,

Is there a way that I can use message structure that I have created to send to the client using SOAP Adapter?

I am not sure what would be the best way.

Any idea pls.

TIA.

Ranjan

MichalKrawczyk
Active Contributor
0 Kudos

Hi Ranjan,

the best way would be to create it on WSDL (external definition ) as Sudhir said...

it's fast and you cannot make mistakes since your WSDL is the exact structure that web service uses

Regards,

michal

Answers (0)