Skip to Content
avatar image
Former Member

Consuming a web service - Absolute URI error

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="xmlbeans.massload.byebye.it" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="xmlbeans.massload.byebye.it" xmlns:xsd="http://www.w3.org/2001/XMLSchema">  <types>  <xs:schema targetNamespace="xmlbeans.massload.byebye.it" version="1.0" xmlns:tns="xmlbeans.massload.byebye.it" xmlns:xs="http://www.w3.org/2001/XMLSchema">  <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 http://xmlbeans.massload.byebye.it and then, when creating the transformation, putting the right namespace (xmlbeans.massload.byebye.it) 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?

Thanks!

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • 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 support.sap.com and was guided to a solution.

    Add comment
    10|10000 characters needed characters exceeded

  • 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="http://schemas.xmlsoap.org/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.

    Add comment
    10|10000 characters needed characters exceeded