cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP ADAPTER empty soap envlope returned even if QoS is EO

Former Member
0 Kudos

Hi Guys,

My requirement is when I receive a message on my Soap sender adapter the return message generated is

HTTP/1.1 200 OK

server: SAP NetWeaver Application Server 7.11 / AS Java 7.11

date: Mon, 08 Mar 2010 15:50:41 GMT

content-type: text/xml; charset=utf-8

content-id: <soap-5998f1002aca11dfb4cf0ab6e7ce3204 sap.com>;

content-disposition: attachment;filename="soap-5998f1002aca11dfb4cf0ab6e7ce3204sap.com.xml";

content-description: SOAP

content-length: 112

set-cookie: saplb_*=(sapxd100_XD1_00)9618450; Version=1; Path=/

set-cookie: JSESSIONID=mZ3mLdKhNGb05kq1m7n8CRgsCweXjng-JwESxJIA_SAP; Version=1; Path=/

<SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'><SOAP:Header/><SOAP:Body/></SOAP:Envelope>

i.e. an HTTP 200 along with an empty soap envelop

I have gone thru the whole documentation and it talks that when http 202 id generated no envelope is generated

My Question:

How to get Http 202 or how can I supress the return of empty soap envelope in my adapter.

Helpful answers will recieve points.

Thanks & Regards

Gagan Kasana

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member206760
Active Contributor
0 Kudos

this is what is the standard behaviour. should not be changed

Former Member
0 Kudos

In SAP Note 856597 (FAQ: XI 3.0 / PI 7.0 / PI 7.1 SOAP Adapter) under the question 2(a) titled "What are the correct sender options for asynchronous calls?" it is stated that "When the message successfully accepted by the adapter, an HTTP 200 response with an empty SOAP envelope or an HTTP 202 response message with no content is returned.".

This implies to me that both options are possible. Furthermore there are other notes that provide fixes to SAP components to allow acceptance HTTP 202 responses from an PI Server, so there must be a situation in which these responses are returned.

What isn't explained, and I can't find documented anywhere is how the SOAP Adapter determines whether to send an HTTP 200 response with an empty SOAP envelope or an HTTP 202 response. I'm wondering if it is via Module Configuration of the XISOAPAdapterBean, but I'm not sure what the parameter would be.

The question is also relevant to .NET consumers, as this envrionment raises an error ("The one-way operation returned a non-null message with Action=") for one-way communication if an HTTP 200 response with an empty SOAP envelope is returned.

Unfortunately, while I don't have the answer, I believe this is a relevant question, and one to which there should be a SAP standard solution.

Cheers,

Jon

former_member206760
Active Contributor
0 Kudos

SOAP sender does not support modules..

also this should help

http://help.sap.com/saphelp_nw04/helpdata/en/5e/164442c1a1c353e10000000a1550b0/content.htm

Former Member
0 Kudos

Hi All,

Thanks for the reply,

My condition is what Jon has described .

The sender is a .Net environment and they are not comfortable with the empty soap envolope.

What is strange to me is that the SOAP adapter in the case of EO act like synchronous between the third party and the adapter and after adapter onwards it is Asyncronous.

I had gone thru SAP Note 856597 befor posting this but I have'nt found any link or any procedure where it stated how to acknowledge the message as HTTP 202 instead of HTTP 200.

The other part is if I have to configure Module Configurationof the SAOP adapter for not sending a return message or mask my HTTP acknowledgement where are the standart parameter names and parameter values documented . I did'nt find any document on SAP help or even in SDN where someone has used Module Configuration of the XISOAPAdapterBean.

Regards

Gagan Kasana

Former Member
0 Kudos

Hi,

The SAP Help for NetWeaver PI 7.1 EHP1 related to [Supported Standards |http://help.sap.com/saphelp_nwpi711/helpdata/en/44/624479f7e608fae10000000a422035/frameset.htm]indicates that PI 7.1 supports the WS-I Basic Profile 1.1.

The WS-I Basic Profile 1.1 - [Section 4.7.9 One-Way Operations|http://www.ws-i.org/Profiles/BasicProfile-1.1.html#One-Way_Operations] says the following:

There are differing interpretations of how HTTP is to be used when performing one-way operations.

R2714 For one-way operations, an INSTANCE MUST NOT return a HTTP response that contains an envelope. Specifically, the HTTP response entity-body must be empty.

R2750 A CONSUMER MUST ignore an envelope carried in a HTTP response message in a one-way operation.

R2727 For one-way operations, a CONSUMER MUST NOT interpret a successful HTTP response status code (i.e., 2xx) to mean the message is valid or that the receiver would process it.

Based on this, I believe that returning an empty SOAP envelope is not in compliance with the WS-I Basic Profile 1.1 (R2714), and is therefore a bug in the PI implementation that should be corrected in order for SAP to comply.

Unfortunately for Gagan and myself, the .NET WCF implementation is also not compliant with the WS-I Basic Profile 1.1 (R2750) and as a result we get the error I mentioned above. The only solution I have found so far is to change the operation contract on the .NET proxy to be IsOneWay = false, in which case the proxy will accept the empty envelope. While this may be an acceptable workaround, I don't think it's a valid long term solution, particularly if you're not able to influence the consumer development.

I guess the next step is to raise a Customer Message related to the empty envelope, and see what the PI Development Team think.

Cheers,

Jon

Former Member
0 Kudos

Hi All ,

I have raised a SAP Note as this is a Catch 22 position with regards to Integration with .Net environment.

For the Time being we have asked the .Net team to handle the exception at there end as we cant do anything as per the SAP Standard.

Will update what SAP Gurus comes up with.

Regards

Gagan

Former Member
0 Kudos

Hi All,

I have been able to send a HTTP 202 without SOAP envolope using SOAP AXIS adapter. I have posted a tuotrial on how to do implement Axis adapter hopefully it should be out in a week or so.

Regards

Gagan

Former Member
0 Kudos

Hi All,

According to the response in my customer message, SAP are preparing a source code correction that will allow the SOAP Adapter to return an HTTP 202 reponse with no SOAP envelope.

I have been advised that this option will be provided as additional request parameter to SOAP Adapter

message servlet from 7.10 SP7 onwards and 7.11 SP2 onwards, with the correction for 7.11 SP3 (not sure if this will also include other environments) to be available by 23.04.2010.

So if you haven't started using the Axis Adapter, and can handle waiting a couple of weeks, there should be another option available soon.

Full credit to SAP for their quick turnaround on this.

Cheers,

Jon

Former Member
0 Kudos

Hi,

SAP have now released Note 1459995 - Soap Sender Adapter HTTP 202 response for asynchronous call, which provides a patch to the Adapter Framework to resolve this issue.

Cheers,

Jon

Former Member
0 Kudos

my question is why tweak PI in this case ? The sending side should be able to process the HTTP 200 correctly, with or without the empty SOAP response.

I had also some B2B partner who wanted us to return a different response code in some case, but I rejected that requirement because we will not modify the std SOAP adapter behaviour.

They need to adapt their application on the sending side.

CSY

Edited by: Christian Sy on Mar 9, 2010 6:14 AM