Skip to Content
avatar image
Former Member

Removing and adding SOAP Envelope

Hi All,

I am working on SOAP-XI-Proxy scenario.

As the request message triggered by the Sender System is wrapped

by an SOAP Envelope with notation '<soapenv:Envelope ' insted of normal notation

'<SOAP:Envelope ', the Adapter rejected the message and we didn't have an entry

for the message in Message Monitoring.

So I used the option 'Do not Use SOAP Envelope' and added the suffix 'nosoap = true'

in the Targer URL.

Then after XI accepted the message and I can see the entry in XI.Not surprisingly,

the entire SOAP message is visible in the payload as follows.

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

- http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance">

- <soapenv:Body>

- <Complaint_Request xmlns="urn:com.****l.*.*.****">

<CaseNo>12345</CaseNo>

<CustomerNo>12345</CustomerNo>

</Complaint_Request>

</soapenv:Body>

</soapenv:Envelope>

What I understand,the challenge is to remove the un necessary tags in request mapping,

and add the SOAP:Envelope Tag in the response mapping.But I dont have a clue .

Also what should be my Data Type and Interface Structure (Sender and Receiver) ?

Regards,

Subhendu

Edited by: Subhendu Sahu on Apr 27, 2009 11:24 AM

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

5 Answers

  • avatar image
    Former Member
    Apr 27, 2009 at 11:31 AM

    Hi,

    please check whether SOAP adapter modules can help here:

    http://help.sap.com/saphelp_nw04/helpdata/en/45/a4a36de28552f7e10000000a1553f7/frameset.htm

    Additionally - maybe an XSLT is an option here. You could extract the content of the SOAP delivered message using XSLT.

    Regards,

    Kai

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member Former Member

      Hi Kai,

      One doubt. I will redesign my message type( the existing one). But my client needs to use the same old WSDL.

      If I give the WSDL with the new structure, the same problem will persist. Please correct me, if I m wrong.

      Regds.

  • Apr 27, 2009 at 11:35 AM

    >>So I used the option 'Do not Use SOAP Envelope' and added the suffix 'nosoap = true'

    >>in the Targer URL.

    Choose only the option "Do not Use SOAP Envelope" and no suffix. Then process the message. I think it will work.

    Regards,

    Madan Agrawal

    Add comment
    10|10000 characters needed characters exceeded

  • Apr 27, 2009 at 11:38 AM
    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Apr 27, 2009 at 12:21 PM

    Hi Subhendu,

    Please have a look at the following link and check if it helps.

    http://www.w3.org/TR/soap12-part0/

    Best Regards.

    Add comment
    10|10000 characters needed characters exceeded

  • Apr 27, 2009 at 10:18 PM

    > As the request message triggered by the Sender System is wrapped

    > by an SOAP Envelope with notation '<soapenv:Envelope ' insted of normal notation

    > '<SOAP:Envelope ', the Adapter rejected the message and we didn't have an entry

    > for the message in Message Monitoring.

    That should not matter, as the name of the namespace prefix is not fix.

    Could you tell me, what error message do you get? Or what entry do you have in host:port/mdt/channelmonitorservlet ?

    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      Hi Stefan,

      Actually we did nt have an entry in XI. The client system got the error message as folowed.

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

      - <!-- see the documentation

      -->

      - http://schemas.xmlsoap.org/soap/envelope/">

      - <SOAP:Body>

      - <SOAP:Fault>

      <faultcode>SOAP:Server</faultcode>

      <faultstring>Server Error</faultstring>

      - <detail>

      - http://sap.com/xi/WebService/xi2.0">

      <context>XIAdapter</context>

      <code>MalformedMessageException</code>

      - <text>

      - <![CDATA[

      Unexpected content in SOAP:Body; nested exception caused by:

      com.sap.aii.messaging.util.XMLScanException: Unexpected content in SOAP:Body

      at com.sap.aii.messaging.mo.Message.reparseRootDocument(Message.java:1014)

      at com.sap.aii.messaging.net.MIMEInputSource.readSOAPPart(MIMEInputSource.java:619)

      at com.sap.aii.messaging.net.MIMEInputSource.decodePart(MIMEInputSource.java:611)

      at com.sap.aii.messaging.net.MIMEInputSource.readBody(MIMEInputSource.java:379)

      at com.sap.aii.messaging.net.MIMEServletInputSource.parse(MIMEServletInputSource.java:58)

      at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:378)

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

      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)

      ]]>

      </text>

      </s:SystemError>

      </detail>

      </SOAP:Fault>

      </SOAP:Body>

      </SOAP:Envelope>

      When I got this error message, I checked the servlet, and it was working fine. I tested in many times and got the same error message.

      After I used the Option, 'Dont use Soap Envelope', I got the message entered into XI.

      I am using the ADress as http://********/XISOAPAdapter/MessageServlet?channel=:iCaseWork:Create_CRM_Tkt&nosoap=true

      Please advise.

      Regards,

      Subhendu

      Edited by: Subhendu Sahu on Apr 28, 2009 10:40 AM