cancel
Showing results for 
Search instead for 
Did you mean: 

How put wsdl files at WS Navigator page?

Former Member
0 Kudos

Hi all,

I read all the blogs and threads about the "wsdl hell" of XI soap interfaces, but didn't find a way to get the wsdl automatically generated from these interfaces. It seems to be a so simple and important feature that I can't agree there is no way of doing it.

If I make a .NET web service, put the "?wsdl" after the asmx and there is the wsdl! The same with Java (some little different details, but almost the same). The same too with the services created using Java at NetWeaver Developer Studio (some differences - but almost the same too). Why in XI the only way to get the wsdl is generating it by hands? By this way,

-> is necessary to create a complete structure to keep versioning of wsdl

-> different wsdl's for the same service according to its environment (development/quality/production)

-> an http folder to share this wsdl files

-> remember all the development team even than a change in one wsdl occurs to prevent using wsdl file in http cache (this is really crazy...)

I found some abap classes that implement some GET_WSDL methods... (CL_SRAPI_WSDL_GEN_CONTROL and related)... but abap is greek to me

It seems clear to me that it must be another way of getting the wsdl from XI soap interfaces... if some of you have already found it, please, share with us

regards!

roberti

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hey

>>way to get the wsdl is generating it by hands

can you please explain what you mean by Generating by Hand?

see you can't generate a WSDL until and unless you have the whole application developed(same is the case with a Java code),you write the Java application and then generate the WSDL for that.

similarly in XI,you design and configure the whole end to end process and then you generate the WSDL in ID.

Hope it helps,reply back if you have any more queries

Thanx

Ahmad

Former Member
0 Kudos

Hi Ahmad,

thanks for your reply,

when I say "generate it by hands" I mean to go to Integration Directory, tools/ define web service, etc... Is totally different from a java application, for example. In a java/.net application, you don't have to generate the wsdl and save it as a file, it is generated automatically when you go to the service url with the correct parameters (like, http://yourserver/yourservice?wsdl). In this case, the wsdl is not stored as a file in a http server, it is generated automatically. We are searching for doing this with XI web services (message interfaces published as a service in XI).

thanks!

roberti

bhavesh_kantilal
Active Contributor
0 Kudos

Have never tried this, but this blog by Naveen should help,

<a href="/people/sap.user72/blog/2005/11/17/xi-how-to-publish-wsdl-generated-from-xi-to-uddi">How To publish WSDL generated from XI to UDDI</a>

Have heard many discussions where this is not supposed to be a complete UDDI registry. PI 7.1 promises more in this direction though.

Regards

Bhavesh

Former Member
0 Kudos

Thanks Jai and Bavesh,

I have already implemented this workaround last January, and we have been using it until now. Here we have two main problems:

1 - The number of wsdl files is being big to manage (currently 98 files and growing)

2 - The http folder has a cache problem. We currently have an OSS to Sap about it. When we put the wsdl file in the http shared folder, all works well. But, when we change the wsdl something into it, the old file remains in http cache and when we go to http://server:port/wsdlFolder/wsdlFile, we got the old wsdl file.

The solution would be (my view) to have a way of getting the wsdl dynamically... not store it in a file, get it on demand like in Sproxy, WS Navigator or other web services (.net, java, etc...)

At transaction SPROXY, if you go over a message interface and right click on it, it will appear an option "Display WSDL" - I think it is dynamically generated too...

At ws navigator page there is a way to get the automatically generated wsdl, like this http://server:port/CMSRTS/Config1?wsdl - the same way we get from .NET or Java services.

regards

roberti

henrique_pinto
Active Contributor
0 Kudos

That is a really serious gap of the sender soap interfaces...

Going through ID to generate wsdl (end even having to remake it sometimes) is not practical at all.

Just a little hint: did any pro java guy out there ever tried to debug the IB in order to check the java application that generates the wsdl files? 😄

About the http caching content, I don't think it has anything related to ur problem, but check this:

They've just received a fix, so maybe it'd also apply to you (not sure though; maybe with some little modifications).

Regards,

Henrique.

Answers (4)

Answers (4)

Former Member
0 Kudos

Not asnwered, but I think there is no way of doing this. So, closing the tread.

thanks all.

roberti

Former Member
0 Kudos

Hi Waldemar,

Go through the help, this might solve your issue..

http://help.sap.com/saphelp_nw04s/helpdata/en/b7/d7baaf1481a349ab723e3acd7334b3/frameset.htm

vasanth

Former Member
0 Kudos

Thanks people for replying,

Henrique, I talked with basis team about the post you pointed to, we had this problem with authentication too and now is solved by the same way, with a temporary fix. The http cache problem remains there. Now we will put the wsdl files in another http server outside xi to handle this (another workaround).

Vasanth, this help has nothing to do with our discussion, but thanks for your try. I have been searching for all the sap help to find a way to solve this issue. Maybe the only way is debugging ID as Henrique suggested

regards!

roberti

Former Member
0 Kudos

Woldemar,

Naveen has addressed this issue here <a href="/people/sap.user72/blog/2005/11/17/xi-how-to-publish-wsdl-generated-from-xi-to-uddi To publish WSDL generated from XI to UDDI</a>. Also have a look into the comments section.

Regards,

Jai Shankar

Former Member
0 Kudos

Roberti,

As a end user I wil just call the webservice with the help of WSDL what we create from XI. The parameters whatever we have in the WSDL (like dev/qa/prod) the data will go to that system. So since the wsdl's are different for all the systems we have to generate the WSDLs manually. Else if you have the development WSDL you can even change the WSDL for QA and Prod in Notepad without creating manually. This all you can do only when you have enough knowledge about the webservices and WSDL. Hence I would suggest you to create the WSDLs manually for every system. This are my views.

Regards,

---Satish

Former Member
0 Kudos

Hi Satish,

ok, I understand what you mean. But, this approach will work fine only if you have a couple of services. We have 96 services, each one has its wsdl. If you consider dev/qa/prod, there are 288 wsdl files... its unmanageable by this way.

By java or .Net approach, you don't care about the wsdl because it's automatically generated and managed with the service.

thanks for your reply.

roberti