Skip to Content
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

To report this post you need to login first.

16 Comments

You must be Logged on to comment or reply to a post.

  1. Anonymous
    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 ?

    (0) 
    1. Anonymous
      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

      (0) 
    2. Anonymous
      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

      (0) 
  2. Anonymous
    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 ?

    (0) 
    1. Anonymous
      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

      (0) 
  3. Hildegard Winter
    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

    (0) 
    1. Anonymous
      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

      (0) 
  4. sivasakthi danasekaran
    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

    (0) 
  5. 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

    (0) 
    1. Anton Wenzelhuemer
      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

      (0) 
  6. 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

    (0) 
    1. Anonymous
      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

      (0) 
  7. Prakash Babu J
    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

    (0) 

Leave a Reply