Skip to Content
Author's profile photo Former Member

XI : How To publish WSDL generated from XI to UDDI

Scenario: You have successfully generated wsdl of an outbound interface defined in XI. This wsdl is required by the developeres for generating client proxies to make the webservice call. Issue: The wsdl that is generated using the tool provided by XI, generates the WSDl as an extract and hence for every request from developers(or customers) who need to implement the webservice, XI team either has to email the WSDL or put the wsdl in a share drive. Solution : Instead of sending the wsdl to the developers, an alternative way is desired where one could publish this wsdl into a UDDI repository and the developers could be directed to the UDDI repository. But there is a catch for publishing service definitions in UDDI. During the publishing process, UDDI repositry requires a http location of the service definition ie wsdl ex http://xyz/test.wsdl. This weblog presents a way 1. to define a place holder in WebAS for holding the wsdls. 2. publish the wsdls in WebAS UDDI Repostory step 1 : Create a folder wsdl in the J2EE memory space. image step 2 : log into visual adminitrator server-> services -> http provider image step 3 : 1. select Web Services Container Service->Runtime 2. choose Virtual Host Tab strip. 3. In the general properties default host select Directory list and save propertes. image step 4 : select the aliases tab strip and create an alias for the folder “wsdl” , specify the path to the folder and save

image

image step 5: Once you have created aliases , you can access the folder on WebAs using http://server:port/wsdl address. You will be able to see all the files in the folder wsdl. You can also refer to the files in the folder directly ex. http://server:port/wsdl/Test.wsdl image step 6: Now you can use the local UDDI Client for publishing Sevice Definition(wsdl) to the UDDI Registry. image Conclusion : XI generates WSDLs that are used to generate proxies for making the webservice call. Manul notification of these wsdls to interested parties is cumbersome. In this weblog i have presented an alternative approach of publishing XI WSDLS in the local UDDI Registry. One can also use this approach for publishing the service definitions on to any public/private UDDI Registries. if you have questions on how to set up a UDDI Registry, take a look at my Step by Step guide for WebAS : A step by step guide for Configuring UDDI registry on Local Server

Assigned Tags

      16 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member
      Hi Naveen,
                  Thanks a lot for this weblog... this information is hard to find.

      Regards,
      Mathew

      Author's profile photo Former Member
      Former Member
      Hi Mathew,

      Glad to be helpful.

      Cheers,
      Naveen

      Author's profile photo Former Member
      Former Member
      Naveen
            I had some questions on this weblog :

      1. After publishing web service defn, how do I edit the existing definition that is on the UDDI server - i.e for eg : add to the description etc... (I guess changing the wsdl contents itself is easy - i.e keep the wsdl folder contents -up-to-date ) . In the UDDI client, I don't see any edit option
      2. Any option for deleting existing web service definitions ?

      Author's profile photo Former Member
      Former Member
      Hi,

      >>1. After publishing web service defn, how do I >>edit the existing definition that is on the >>UDDI server - i.e for eg : add to the >>description etc... (I guess changing the wsdl >>contents itself is easy - i.e keep the wsdl >>folder contents -up-to-date ) . In the UDDI >>client, I don't see any edit option
      SAP UDDI server is in its early stages when compared to its peers provided by Microsoft/IBM etc. There is now way to edit webservice definition. You have to manually keep the WSDl uptodate.

      >>2. Any option for deleting existing web service >>definitions ?
      Currently i dont think there is a way to delete

      cheers,
      Naveen

      Author's profile photo Former Member
      Former Member
      Hi,

      >>1. After publishing web service defn, how do I >>edit the existing definition that is on the >>UDDI server - i.e for eg : add to the >>description etc... (I guess changing the wsdl >>contents itself is easy - i.e keep the wsdl >>folder contents -up-to-date ) . In the UDDI >>client, I don't see any edit option
      SAP UDDI server is in its early stages when compared to its peers provided by Microsoft/IBM etc. There is now way to edit webservice definition. You have to manually keep the WSDl uptodate.

      >>2. Any option for deleting existing web service >>definitions ?
      Currently i dont think there is a way to delete

      cheers,
      Naveen

      Author's profile photo Former Member
      Former Member
      Naveen
              I had one more question : how does any user who consumes the webservice published by XI - acess the list of web services using the UDDI client - without having a user id ?

      This user id - to browse the wsdls using uddi client - does it have to be setup as a separate "Tier " user - what previleiges/roles - would you know ?

      Author's profile photo Former Member
      Former Member
      Hi,

      >> I had one more question : how does any user >>who consumes the webservice published by XI - >>acess the list of web services using the UDDI >>client - without having a user id ?
      to browse UDDI using the UDDI Client, you dont need any user id. Its open to any one who can get to that link.
      http://server:port/uddiclient/process

      Naveen

      Author's profile photo Former Member
      Former Member
      Naveen
               Appreciate your prompt response . This url http://server:port/uddiclient/process gives me a 404 not found...

      However the url http://server:port/uddiclient is working fine - taking me to the webservice publish page..

      Any setting my basis guy might have missed ? Thank you for your time .

      Author's profile photo Former Member
      Former Member
      Hi Naveen,

      We have published a WSDL of an outbound interface defined in XI the way it's described in your weblog. When we try to call the service using the URL given as location of the soap-adress in the wsdl, a login-screen appears. After connecting with the user XIAPPLUSER (we think, it’s the right one), we get the following message:

      Message Servlet is in Status OK
      Status information:
      Servlet com.sap.aii.af.mp.soap.web.MessageServlet (Version $Id: //tc/aii/30_VAL_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#14 $) bound to /MessageServlet
      Classname ModuleProcessor: null
      Lookupname for localModuleProcessorLookupName: localejbs/ModuleProcessorBean
      Lookupname for remoteModuleProcessorLookupName: null
      ModuleProcessorClass not instantiated
      ModuleProcessorLocal is Instance of com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0
      ModuleProcessorRemote not instantiated

      So what are we doing wrong? Why do we get a login-screen? Is there an error in the configuration of the apps-server the reason for this error or are any rights missing? The published UDDI (wsdl) does not appear in the webservice navigator, so we cannot test it like a standard webservice (e.g. WcrSessWS).

      greetings
      Hildegard

      Author's profile photo Former Member
      Former Member
      hi,

      >>So what are we doing wrong? Why do we get a >>login-screen? Is there an error in the >>configuration of the apps-server the reason for >>this error or are any rights missing?
      you are not doing anything wrong. this is expected behaviour.

      >>The published UDDI (wsdl) does not appear in >>the webservice navigator, so we cannot test it >>like a standard webservice (e.g. WcrSessWS).
      unlike other webservice providers, SAP WAS doesnt generate the testing screen automatically for testign the webservice. Hence to test ur webservice you will have to use some other external tool like xmlspy.

      cheers,
      naveen

      Author's profile photo Former Member
      Former Member
      Hi Naveen,

      I have developed a Webservice from a WSDL file i created from a XI outbound interface following the steps u have given in ur blog.
      In the UDDI Client i got the message that the WS has been successfully published but i am not able to view my Web Service in the WS Navigator.
      What is the procedure to view a WS published using the UDDI client? is there any direct url to view the WS?

      here is the question i posted in forum

      Web service published but not visible

      Thanx&Regards
      Sivasakthi

      Author's profile photo Martin Summerer
      Martin Summerer
      Hi Naveen!

      I have major problems with the HTTP Provider.

      When I replace a wsdl by a new one in the wsdl folder, the Change date is updated, but the content stays like it was ( I suppose it is cached and the cache is not updated )

      How can I tell the HTTP Provider to update its cache?

      kind regards
      Martin

      Author's profile photo Former Member
      Former Member
      hi,

      tricky problem. it depends on how you access the WSDL. If you access it programmatically and you have access to the http headers, you can set the pragma: no-cache directive.
      if you want to access it in the browser or don't have access to the HTTP header fields you can try a workaround by adding '?2345344543' to the URL, where 2345344543 is a random number(every time), e.g. unix time (if you already have parameters in your URL, use & instead of ?).

      regards,
      anton

      Author's profile photo ranga rajan
      ranga rajan
      Hi Naveen ,

                    This blog is excellent .But , I am getting the Following errors
               
      An ERROR has occurred
      Invalid key passed: Unknown TModel key in reference. TModel key :uuid:c1acf26d-9672-4404-9d70-39b756e62ab4

                What ever you have specified in your blog i have  followed.

              In your step by step guide for Configuring UDDI Registry on Local Server

      step 8: After the user is authenticated, the user will be taken to a Publis Service Definition page. Here one could specify service specific properties like categories, wsdl locaton. After entering required information hit the publish button for publishing the service definition onto the UDDI Register, which in our case happens to be the one on the local server.

              May i know  what kind of specific properties like categories, wsdl locaton.  Do i need to give give my local PC location for WSDL or what else i have to give ?
          
         Can you please give some mor information about this Step ?

               When i was trying to publish i got the following error

      An ERROR has occurred
      Invalid key passed: Unknown TModel key in reference. TModel key :uuid:c1acf26d-9672-4404-9d70-39b756e62ab4

      Author's profile photo Former Member
      Former Member
      Hello,

      >> Do i need to give give my local PC location >>for WSDL or what else i have to give ?
      wsdl should be stored in a location that is accessable by the UDDI server. Usually we put it in a share folder on the UDDI server.

      cheers,
      Naveen

      Author's profile photo Former Member
      Former Member
      Hi Naveen,

      I followed the steps mentioned by you in the blog but i am getting the following error

      An ERROR has occurred
      Invalid key passed: Unknown TModel key in reference. TModel key :uuid:c1acf26d-9672-4404-9d70-39b756e62ab4

      How to rectify the above error ?

      Thank You
      Regards
      Prakash