cancel
Showing results for 
Search instead for 
Did you mean: 

HTTP 500 with SOAP

Former Member
0 Kudos

Hi Y'all,

We are doing a sender SOAP to R/3 scenario. But while the sender webservice is sending the message into XI , they get a HTTP 500 internal server error with their response. More information on the error is “<context>XIAdapter</context>

<code>MalformedMessageException</code>

<text><![CDATA[

com.sap.aii.messaging.mo.MalformedMessageException: No SOAP Envelope “

The webservice gets a response with this error but I don’t see any messages in the MONI. Is this due to ill formed XML or is the sender SOAP adapter missing any settings. I have unchecked “Do not use SOAP added in the URL &nosoap=true.

Any ideas please .

-Teresa

Accepted Solutions (1)

Accepted Solutions (1)

moorthy
Active Contributor
0 Kudos

Hi,

This SAP note may help u- 856597

Regards,

moorthy

Answers (2)

Answers (2)

agasthuri_doss
Active Contributor
0 Kudos

Hi,

The state assigned to a message when an administrator decides to abort sending the message, or when a message could not be delivered due to a fatal exception that cannot be repaired.

Error Messageà HTTP 500 - Internal Server Error (an Internal server error)

Solution:

Access the trace file and search for traces with severity ERROR, WARNING or stack traces.

If we do not find an error in the log file or the error message does not explain the problem sufficiently, access the default Trace. The default trace file contains detailed messages for developers. Extract the relevant trace information e.g. using the time stamp or the message ID.

If this does not explain the problem in more detail, increase the trace level and reproduce the problem. Then restart message processing using the message display tool. Mark the message and select repeat.

Mean time Check the URL parameters when you are receiving the SOAP message and are you using BPM, If so define an exception branch in a block, where the a error message pops out should be response for RFC ( if you use RFC call to R/3) might be dump and handle the error.

Regards

Agasthuri Doss

Former Member
0 Kudos

Thanks guys. The problem is I do not see the incoming message in any of the comm. Channels but the error is from the response log of the sender webservice. Also I have unchecked “Do not use SOAP envelope”. Would this be an issue? But I am setting nosoap=true in the URL.

Teresa

moorthy
Active Contributor
0 Kudos

Hi,

did you check SAP note given ? trace the message.. also make sure that xml message is valid one.

Regards,

moorthy

Former Member
0 Kudos

Thanks for all the info. I just figured that the webservice is sending a payload without SOAP envelope. So in this case isn’t it enough to just use a plain HTTP inbound adapter? And use a URL http://<hostname:port>/<path>?<query-string>;

Where port is the HTTP port(8000 port) and not ABAP port , path is sap/xi/adapter_plain.

Would this be a solution for the 500 error?

-Teresa

Former Member
0 Kudos

Hi,

It can be a solution to call HTTP adapter but it's very dirty one. Maybe try to check the system(program) which is sending soap request. It should be possible to generate standard SOAP request if it's not go to your HTTP solution.

Regards,

Wojciech

Former Member
0 Kudos

Thanks Wojciech. But if the sending system is not sending a SOAP message why would the sender SOAP adapter in XI (with Do not use SOAP envelope checked) try to validate it as a SOAP message. This shouldn’t happen because the URL also had nosoap = true parameter in the URL. If I understand it correctly a sender SOAP adapter with “Do Not Use Envelope” with a check mark and with the URL having “nosoap=true” should act as a adapter considering the XML message as raw data payload.

-Teresa

Former Member
0 Kudos

Hi,

Yes you are right, with no SOAP it will put it into payload. So it should be sufficient for you.

Regards,

Wojciech

bhavesh_kantilal
Active Contributor
0 Kudos

Teresa,

There are 2 ways you can send a SOAP message to XI.

1. Send it to the Sender SOAP adapter which will forward it to the Integration Engine. This is described in section 3 of this document and the URL will be,

http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet?

channel=<party>:<service>:<channel>

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/d23cbe11-0d01-0010-5287-873...

2. Another option is to send the SOAP message directly to the Integration Engine. The URL to do this would be ,

http://<server>:<ABAP-port>/sap/xi/engine?type=entry&version=3.0&Sender.Service=<YourService>&Interface=<YourNamespace>%5E<YourInterface>

The option 2 is described by Stefan Grube in this blog,

/people/stefan.grube/blog/2006/09/21/using-the-soap-inbound-channel-of-the-integration-engine

In the case of option 1 --> port is J2EE port and in case of option 2 , port is HTTP port.

Also, if you are not sending the SOAP envelope in the payload, do not select DO NOT USE SOAP ENVELOPE in Sender SOAP adapter.

Regards,

Bhavesh

Former Member
0 Kudos

Hi,

Check wheather the WSDL genarted is right and import the wsdl in SOAPSONAR or XMLSpy where you can request for the message even if it fails it will guide what is the problem better way...

and also cheak the username and password which you provided in the communication channel of receiver RFC is right....

Amaresh