WAS v8.5 > Develop applications > Develop web services - UDDI registry > Develop with the UDDI registry > UDDI registry client programming

Use the UDDI EJB Interface (Deprecated)

Use the EJB API of the UDDI registry component to publish, find, and delete UDDI entries. However, the UDDI EJB interface is deprecated and supports UDDI version 2 API requests only.

Both WebSphere Application Server and the UDDI registry must be installed, and must both be running. We cannot use the EJB client from a machine that does not have WAS installed. Deprecated feature: The UDDI EJB interface is deprecated in WAS v6.0.

The client classes required for the EJB interface are contained in app_server_root/UDDIReg/clients/uddiejbclient.jar. For the Java documentation for these classes, see the information about additional APIs.

The EJB API is contained in two stateless session beans, one for the inquiry API (com.ibm.uddi.ejb.InquiryBean) and one for the publish API (com.ibm.uddi.ejb.PublishBean), whose public methods form an EJB interface for the UDDI registry. All the public methods on the InquiryBean class correspond to UDDI v2 inquiry API functions, and all the public methods on the PublishBean class correspond to UDDI v2 publish API functions. Not all UDDI v2 API functions are implemented, for example get_authToken, discard_authToken, and get_businessDetailExt.

In each interface, there are groups of overloaded methods that correspond to the operations in the UDDI 2.0 specification. There is a separate method for each major variation in function. For example, the single UDDI operation find_business is represented by ten variations of findBusiness methods, with different variations to find by arguments such as name or categoryBag.

The arguments for the EJB interface methods are Java objects in the com.ibm.uddi.datatypes package. Generally, there is a one-to-one correspondence between classes in this package and elements of the UDDI v2 XML schema. There are exceptions to this correspondence, for example, where UDDI XML elements can be represented by a single string. For more information, see the Java documentation for the package com.ibm.uddi.datatypes in the information about additional APIs.

The methods on the EJB InquiryBean class map to the EJB inquiry role, and those of the EJB PublishBean class map to the EJB publish role. The EJB inquiry and publish roles protect the EJB interface, as described in information about access control for UDDI registry interfaces. If the role mapping is such that a method requires a WAS authenticated user ID, a client program can supply the user ID and password, either when prompted by WAS, or by providing application code that logs in to the default realm using the user ID and password. Use the sas.client.props configuration file to determine how to specify the user ID and password when we configure security.

To use the EJB client, use the following steps.

  1. Set up the environment to communicate with WAS:

      . app_server_root/bin/setupCmdLine.sh

      app_server_root/bin/setupCmdLine.bat

    Notice that a single space character follows the period (.)

  2. Ensure that your CLASSPATH includes the uddiejbclient.jar file (from the app_server_root/UDDIReg/clients directory), and the code for the client.
  3. Compile custom EJB client programs:
    $JAVA_HOME/bin/javac -extdirs $WAS_EXT_DIRS:$JAVA_HOME/jre/lib/ext 
    -classpath $WAS_CLASSPATH:$CLASSPATH yourcode.java
    %JAVA_HOME%/bin/javac -extdirs $WAS_EXT_DIRS:%JAVA_HOME%/jre/lib/ext 
    -classpath %WAS_CLASSPATH%:%CLASSPATH% yourcode.java

  4. Run the compiled programs:
    $JAVA_HOME/bin/java -Djava.ext.dirs=$WAS_EXT_DIRS:$JAVA_HOME/jre/lib/ext 
    -Dwas.install.root=$WAS_HOME -Dserver.root=$WAS_HOME $CLIENTSAS $CLIENTSOAP 
    -cp $WAS_CLASSPATH:$WAS_HOME/UDDIReg/clients/uddiejbclient.jar:$CLASSPATH 
    <class name> <args>
    %JAVA_HOME%\bin\java -Djava.ext.dirs=%WAS_EXT_DIRS%;%JAVA_HOME%\jre\lib\ext 
    -Dwas.install.root=%WAS_HOME% -Dserver.root=%WAS_HOME% %CLIENTSAS% %CLIENTSOAP% 
    -cp %WAS_CLASSPATH%;%WAS_HOME%\UDDIReg\clients\uddiejbclient.jar:%CLASSPATH% 
    <class name> <args>

    Ensure that your PATH statement starts with app_server_root/java/bin.


+

Search Tips   |   Advanced Search