cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP receiver error

Former Member
0 Kudos

I have a RFC - XI - SOAP scenario.

I have loaded the wsdl definitions from the web service provider, and all the mappings seem fine.

Testing the web service with SoapUI it works fine.

I think I have configured the SOAP adapter correctly, as I am receiving a response (changing the URL or service gets HTTP errors)

However, I keep getting the same error:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Call Adapter

-->

- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">

<SAP:Category>XIAdapter</SAP:Category>

<SAP:Code area="PARSING">ADAPTER.SOAP_EXCEPTION</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>soap fault: The root element for the request could not be determined. When RoutingStyle is set to RequestElement, SoapExtensions configured via an attribute on the method cannot modify the request stream before it is read. The extension must be configured via the SoapExtensionTypes element in web.config, or the request must arrive at the server as clear text. --> The root element is missing.</SAP:AdditionalText>

<SAP:ApplicationFaultMessage namespace="" />

<SAP:Stack />

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

I get the same error for both synchronous and asynchronous calls.

I cannot figure out if the soap envelope I am sending is not being read correctly, of if the response has problems...

If I could see the soap message being sent/received then I might get a hint...

Thanks for your help

Michael

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

Thanks Bhavesh.

Problem not solved yet, but the feedback allowed me to get a better idea what is going on - the soap tags are in uppercase.

I have created a new message which is more specific.

Former Member
0 Kudos

Bhavesh

Clicking on the eye raised the error in my post above.

Clicking Display Message Bytes brings a different message:

<b>The message bytes for this synchronous message in final state have been removed from the memory to save resources</b>

aaargh...

Michael

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

><i>The message bytes for this synchronous message in final state have been removed from the memory to save resources</i>

Your Synch message logging has been turned off.You need to set this parameter in the messaging system Visual Admin to turn Sync logging on,

<b>messaging.syncMessageRemover.removeBody = false</b>

Regards,

Bhavesh

Former Member
0 Kudos

Bhavesh

Thanks - the message display tool is great (why was it so hard to find ??? )

I can see the audit log for the messages, confirming that the error message is coming from the web service.

However, when I try to view the message details, I get an error message.

<b>There was an error processing your request.

java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key HEADER_SER_CTX

With the following stack trace:</b>

<i> java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key HEADER_SER_CTX

at java.util.ResourceBundle.getObject(ResourceBundle.java:325)

at java.util.ResourceBundle.getObject(ResourceBundle.java:322)

at java.util.ResourceBundle.getString(ResourceBundle.java:285)

at jsp_monitor21164341783697._jspService(jsp_monitor21164341783697.java:233)

at com.sap.engine.services.servlets_jsp.server.jsp.JspBase.service(JspBase.java:112)

at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:544)

at com.sap.engine.services.servlets_jsp.server.servlet.JSPServlet.service(JSPServlet.java:186)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)

at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)

at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)

at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)

at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)

at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)

at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)

at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)

at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)

at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)

at java.security.AccessController.doPrivileged(Native Method)

at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)</i>

I don't know if this is the cause of my problem, or unrelated...

Michael

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

><i>However, when I try to view the message details, I get an error message.</i>

Can you let me know how you are trying to view the entire SOAP message?

Am opening the same link on my sever and when I follow the path given in my previosu reply, I can actually see the whole SOAP message.

Click on SENT / RECEIVED messages and then give the time stamp of the message and hit enter.

In the list of messages displayed, click on the EYE icon of your message --> Display Message Bytres and you can see the entire SOAP message. Just check whther your Webservice takes this SOAP meesage as valid,

Regards,

Bhavesh

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

><i>I cannot figure out if the soap envelope I am sending is not being read correctly, of if the response has problems...</i>

best thing to do would be to see the actual SOAP message sent out of Xi and see if that is what the webservice expects.

You can view your entire SOAP message using the MessageDisplayTool --> MDT.

<u><b>http://host:port/MessagingSystem/monitor/monitor.jsp</b></u>

--> Sent Messages / Received Messages --> Synch / Aynch --> Give the valid time --> and you will get a list of messages.

Next, click on Details --> Display Message Bytes --> This will display the entire SOAP message.

Regards,

Bhavesh

Former Member
0 Kudos

I have managed to replicate the error in the soap test tool soapUI.

I get the error back from the web service if I send a completely blank request or an envelope with no body, ie

<b><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:dest="https://www.dest.gov.au">

</soapenv:Envelope></b>

So the question is, why is the envelope or the body missing (or scrambled) from XI ?

I don't have any of the options ticked in the SOAP adapter configuration.

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

One more thing to check is if there is a proxy server between the webservice and your XI server. if yes, make sure you enter the proxy server setting with the credentials in the SOAP adapter congifuration.

Regards,

Bhavesh