cancel
Showing results for 
Search instead for 
Did you mean: 

Consuming a web service - Absolute URI error

Former Member
0 Kudos

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!

Accepted Solutions (0)

Answers (2)

Answers (2)

matt
Active Contributor

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.

Former Member
0 Kudos

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 support.sap.com

Jelena
Active Contributor
0 Kudos

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.

matt
Active Contributor

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
Active Contributor
0 Kudos

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.

Former Member
0 Kudos

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.

Jelena
Active Contributor
0 Kudos

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