Skip to Content

Consuming a web service - Absolute URI error

Oct 09, 2017 at 04:47 PM


avatar image
Former Member

Hello, I'm trying to consume a web service that has the following namespace: xmlbeans.massload.(*).it

So the beginning of the wsdl is like this:

<?xml version="1.0" encoding="UTF-8"?><definitions name="ByeByeWS" targetNamespace="" xmlns="" xmlns:soap="" xmlns:tns="" xmlns:xsd="">  <types>  <xs:schema targetNamespace="" version="1.0" xmlns:tns="" xmlns:xs="">  <xs:element name="GaraWS">  (and so on)

When importing it on SAP (on transaction SE80) I get the error that the namespace must be absolute. I guess it is because it doesn't begin with http://.

And of course if I add http:// to the 4 occurrences of that path in the wsdl, SAP correctly imports the wsdl and creates the proxy class and the elements, but then calling the methods of the web service gives an empty response.

(I also tried with SoapUI and it's the same: without the http:// prefix it all works, with http:// I receive an empty response)

I tried bypassing the "asbolute URI" error in debug (but it gives other errors later, related to the absent http:// as well) and also changed the namespaces in the db tables - but in that case, the "http://" remains in the xml when calling out the ws method because the transformation contains the http:// part (taken from the wsdl)

This is a third party web service and of course I can't just get a valid namespace that begins with "http://". The only solution I thought of is changing the standard so that I can import the wsdl with and then, when creating the transformation, putting the right namespace ( in it.

So the first question is: can you tell me how to catch the transformation creation in debug? I've tried following all the creation of the proxy class and elements from importing the wsdl to the class activation but didn't find anything. I don't really know anything about transformation (I've always just created them from strans and called them via abap) so I don't really know if there are functions or class that I can look into and put a breakpoint in.

The second question of course is: is there any other solution to my problem that I'm not thinking of?


10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

2 Answers

Matthew Billingham
Oct 10, 2017 at 11:20 AM

I've often had to edit 3rd party WSDLs to get them to work with SAP. When it got too complicated, I raised a message at and was guided to a solution.

Show 3 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Hey Matthew, I've edited the WSDL too in other parts, but the communication won't work without that exact namespace, sadly... but thanks! I'll try with


You can ask SAP to help with that?! Hm, I didn't know... Was banging my head on the wall with one WSDL, ended up doing some kind of direct HTTP GET just to get it to work ("borrowed" the code from another forum). It was a while ago though.


Well, you can always ask. :-)

If the SAP SOAP framework can't handle a WSDL that SoapUI can, then that indicates a problem with the SAP SOAP framework, and therefore a responsibility to make it work.

Jelena Perfiljeva
Oct 09, 2017 at 07:49 PM

FWIW this is an example of the beginning of a WSDL generated by SAP (to be consumed elsewhere):

  <?xml version="1.0" encoding="utf-8" ?> 
- <wsdl:definitions targetNamespace="urn:sap-com:document:sap:soap:functions:mc-style" xmlns:wsdl="" 

Google "WSDL targetNamespace" finds some good explanations of this attribute on the non-SAP sites.

Edit: can't answer the rest, sorry. But I suspect trying to debug this will only send you down a rabbit hole.

Show 2 Share
10 |10000 characters needed characters left characters exceeded
Former Member

I'm in a rabbit hole indeed ;)

And I didn't understand your answer, how can that wsdl help? It's generated by SAP so it doesn't really apply to my problem - which is a wsdl generated elsewhere that SAP doesn't accept upon importation.


I was just trying to note that apparently it can somehow work without "http".