cancel
Showing results for 
Search instead for 
Did you mean: 

Problem in SOAP Request

Former Member
0 Kudos

Hi Experts,

I am working on SOAP-XI-Proxy Scenario. The Java system is using the WSDL from XI and triggering the following request

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

- <soapenv:Envelope xmlns:soapenv="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>

- <SearchCustomer xmlns="urn:com.axonglobal.sbc.icase.customersearch">

<BPNo />

<Surname>Jones</Surname>

<FirstName />

<Phone />

<Email />

<PostCode />

<HouseNo />

<FlatNo />

<Street />

<Building />

<Estate />

</SearchCustomer>

</soapenv:Body>

</soapenv:Envelope>

But it receives the following error.

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

- <!--

see the documentation

-->

- <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

- <SOAP:Body>

- <SOAP:Fault>

<faultcode>SOAP:Server</faultcode>

<faultstring>Server Error</faultstring>

- <detail>

- <s:SystemError xmlns:s="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)

u2026.

u2026u2026.

]]>

</text>

</s:SystemError>

</detail>

</SOAP:Fault>

</SOAP:Body>

</SOAP:Envelope>

IMP:- The call is not registered in the Message Monitoring at Adapetr Level or at Integration Engine Level, as I believe it is rejected as the Message Format is not correct .

Is it because , the request message is wrapped with the SOAP Envelope with the notation u2018<soapenv:Envelopeu2019 instead of the traditional u2018<SOAP:Envelopeu2019 notation?

We tested the same with XML Spy and it is working fine with the same payload.

Pls advise.

Regds.

Edited by: Subhendu Sahu on Apr 24, 2009 12:39 PM

Accepted Solutions (0)

Answers (3)

Answers (3)

former_member200962
Active Contributor
0 Kudos

Hi,

<?xml version="1.0" encoding="UTF-8" ?> 
- <soapenv:Envelope xmlns:soapenv="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>
- <SearchCustomer xmlns="urn:com.axonglobal.sbc.icase.customersearch">
<BPNo /> 
<Surname>Jones</Surname> 
<FirstName /> 
<Phone /> 
<Email /> 
<PostCode /> 
<HouseNo /> 
<FlatNo /> 
<Street /> 
<Building /> 
<Estate /> 
</SearchCustomer>
</soapenv:Body>
</soapenv:Envelope>

Use the below format:

<?xml version="1.0" encoding="UTF-8" ?>
   <SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'>
     <SOAP:Body>
        <SearchCustomer xmlns="urn:com.axonglobal.sbc.icase.customersearch">
          <BPNo /> 
          <Surname>Jones</Surname> 
          <FirstName /> 
          <Phone /> 
          <Email /> 
          <PostCode /> 
          <HouseNo /> 
          <FlatNo /> 
          <Street /> 
          <Building /> 
          <Estate /> 
        </SearchCustomer>
     </SOAP:Body>
</SOAP:Envelope>

Hopefully it will work with the above given format...if not then remove the namespace associated with SearchCustomer and test.

- <soapenv:Envelope xmlns:soapenv="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>
- <SearchCustomer xmlns="urn:com.axonglobal.sbc.icase.customersearch">

Are you testing with sign in the payload??....if yes remove it.

Regards,

Abhishek.

Edited by: abhishek salvi on Apr 24, 2009 7:57 PM

Former Member
0 Kudos

Hi Abhisek,

I dont have the control to create the Envelope. The Java System has automatically wrapped the payload with the SOAP Envelope.

I am not using '-'. I just copied it from the JAva System.

Please let me know, is the error coming (XI is not accepting the call) because of the notation '<soapenv:Envelope' ?

Regds.

former_member200962
Active Contributor
0 Kudos

Hi,

I dont have the control to create the Envelope. The Java System has automatically 
wrapped the payload with the SOAP Envelope.

test the scenario by sending the message from Runtime Workbench / some soap client

(like SAP SOAP Client, Altova XML SPY).....better try sending the message from some

SOAP Client...use both the formats...which the JAVA system is sending and the one which i mentioned.....

I am not using '-'. I just copied it from the JAva System.

ok:)

Regards,

Abhishek.

Edited by: abhishek salvi on Apr 25, 2009 12:29 PM

Former Member
0 Kudos

Hi,

I know, the payload you have mentioned will work. The payload was selected from the Java Log, after they sent the request.

As it is a standard followed by the JAVA(which my client is using), I cant always change the format they send.

So I used the option 'DONOT USE SOAP ENVELOPE', and with the addition of ' nosoap=TRUE' in the target URL of XI. Now the message enters the Integration Engine.

I am closing this thread, as my question is answered. I am facing the difficulties, mapping the content now,and I ll be raising a new thread.

Thanks for your help.

Regards.

former_member732072
Active Participant
0 Kudos

Hi Subhendu,

Please look at the following link and see if it helps you.

Best Regards.

Former Member
0 Kudos

Hi,

Please confirm whether your SOAP request using XML Spy is reaching XI.

Also check the datatypes and occurences in the wsdl

Thanks,

Tiny

Edited by: TINY MAMPILLY on Apr 24, 2009 3:19 PM

Former Member
0 Kudos

Yes, The request from XML SPY is reaching XI.

Former Member
0 Kudos

Hi,

Tell me whether you created SOAP request using XML Spy and then send it or,tried to copy the SOAP request from the Java system and send from XML Spy

Thanks,

Tiny

Former Member
0 Kudos

Hi Tiny,

I consumed the WSDL in XML Spy and then sent the SOAP request. I didnt copy it from the Java System.

Regds.

Former Member
0 Kudos

Hi Tiny,

I consumed the WSDL in XML SPY and then triggered the SOAP Request.I di nt copy it from the JAVA System.