cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP error when xmlns keyword is uppercase.

Former Member
0 Kudos

I have a problem with the SOAP receiver adapter.

XI creates a soap envelope with the keyword SOAP in uppercase:

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

<SOAP:Body>

...

</SOAP:Body>

</SOAP:Envelope></i>

This gets the following response from the web service:

<i> <faultstring>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.</faultstring></i>

I have finally worked out that the webservice which I am calling cannot parse this request.

It will only read the envelope and body is the soap is in lowercase.

<i><<b>soap</b>:Envelope xmlns:<b>soap</b>="http://schemas.xmlsoap.org/soap/envelope/">

<<b>soap</b>:Body>

...

</soap:Body>

</soap:Envelope></i>

The namespace used inside the body is fine, but uppercase SOAP fails every time.

Is there a way to change XI so it uses lowercase for the tags?

Is there a SOAP standard I can hit the webservice developers with?

Regards

Michael

(ps Thanks Bhavesh for feedback on my previous message. I have created a new message now I know what the problem is!)

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

The best solution is certainly for the webservice provider to follow the standard and accept any prefix for the soap envelope.

Unfortunately they are now in integration testing with other parties and cannot make any changes... This means that I have to figure out a work-around.

The soap envelope is not added at the mapping stage, so I cannot modify it there. However, I should be able to add the soap envelope in a mapping and select "No SOAP Envelope" in the soap adapter.

I have tried this but got an HTTP error, so I am obviously not getting through to the webservice - maybe the action is not sent when there is no envelope?

Also, I think I also have to cope with the response coming with a soap envelope where XI does not expect it.

Any other suggestions for modifying the output from the SOAP adapter after it gets the soap envelope and before it leaves XI?

Moorthy, I would like to see the output but SAP note 856597 is no longer available on OSS... (An SAP note with the number requested could not be found)

Smitha, I have used soapUI to test the web service, and this was how I finally worked out that the soap had to be in lower case.

Regards

Michael

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

I have worked with "Do Not Use SOAP Envelope" , so if possible post your error message here,

But, are you sure that even if we do create the SOAP Enevlope in lower Case in the mapping, it will actually reach the target in lover case?

<i>Also, I think I also have to cope with the response coming with a soap envelope where XI does not expect it.</i>

Agree that this is a problem with DO not use Soap Enevelope. We would need to parse the Response to remove the SOAP Enevlope.

Using of XSL and Java Mapping for this should help.

><i>Any other suggestions for modifying the output from the SOAP adapter after it gts the soap envelope and before it leaves XI?</i>

Only way is to use Do Not use SOAP Enevelope. But, before moving to this, ensure that even if we are making a lower case in the mapping for the SOAP enevlope, it will reach in lower case to the target.

Regards,

Bhavesh

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi,

If you really need to solve this in XI then u can go for Java Mapping. In Java mapping its possible to change the tags to lower case.

Got hro these links for Java Mapping:

/people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i

/people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii

/people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii

Regards,

P.Venkat

Former Member
0 Kudos

Hi,

Have you tried sending this request through a SOAP GUI? What is the response that you get in this case?

Regards,

Smitha.

bhavesh_kantilal
Active Contributor
0 Kudos

Michael,

This is a rather strange error. Normally, the case should not matter at all.

I also dont think changing the case from XI would be actually possible. What I would suggest you do is to ask the webservice team to just make the change to accept "SOAP".

Regards,

Bhavesh

moorthy
Active Contributor
0 Kudos

Hi,

Just one small doubt, as webservice is usually world wide standards, is the current wbeservice expects the string in small case ???

if you want to debug the WebService call, you can go for TCP gateway tool and analyse the error.

For more on this- Refer SAP Note - SOAP faq- 856597

Hope this helps,

Regards,

Moorthy