Version 4

    JUDDI Configuration

     

    Starting JBoss 4.0.2, Apache jUDDI is integrated as a UDDI registry to provide JAXR compliance. As you know from Apache jUDDI website http://ws.apache.org/juddi, it is a web application capable of running on tomcat.

     

    In the "all" configuration, in the deploy directory, you will see jUDDI packaged as a SAR file (juddi-service.sar). So, the most important file to configure is "META-INF/jboss-service.xml".

     

     

    Things to configure

     

    1. Create/drop tables on startup.

    2. Drop tables on shutdown.

    3. Should a JAXR connection factory be bound to JNDI?

    4. JNDI name under which JAXR connection factory should be bound.

    5. Datasource name.

     

    Given the above items, the jboss-service.xml will seem intuitive.

     

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE server>
    <server>
    
      <!-- The juddi service configration -->
      <mbean code="org.jboss.jaxr.juddi.JUDDIService"
        name="jboss:service=juddi">
         <!-- Whether we want to run the db initialization scripts -->
         <!-- Should all tables be created on Start-->
         <attribute name="CreateOnStart">false</attribute>
          <!-- Should all tables be dropped on Stop-->
         <attribute name="DropOnStop">true</attribute>
          <!-- Should all tables be dropped on Start-->
         <attribute name="DropOnStart">false</attribute>
          <!-- Datasource to Database-->
         <attribute name="DataSourceUrl">java:/DefaultDS</attribute>
          <!-- Alias to the registry-->
         <attribute name="RegistryOperator">RegistryOperator</attribute>
          <!-- Should I bind a Context to which JaxrConnectionFactory bound-->
         <attribute name="ShouldBindJaxr">true</attribute>
           <!-- Context to which JaxrConnectionFactory to bind to.
           If you have remote clients, please bind it to the global
          namespace(default behavior). To just cater to clients running
          on the same VM as JBoss, change to java:/JAXR -->
         <attribute name="BindJaxr">JAXR</attribute>
         <attribute name="DropDB">false</attribute>
         <depends>jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>
      </mbean>
    </server>
    
    

     

    Configuring this file is very important because jUDDI needs the database tables to be created and populated (JBoss on startup will populate tables while JUDDI Service starts up).

     

    There is also a juddi.properties file that can be configured. I do not see any need to do that. The file is present in juddi-service.sar/juddiws.war/WEB-INF

     

    You can use Apache Scout that is integrated in JBoss to utilise the jUDDI registry. Details are present at Jaxr Configuration. If not, you can use UDDI4J or the UDDI Browser to play with the registry.

     

    Frequently Asked Questions

     

    1. I want to add users to the jUDDI database.

    Look at the script juddi_data.ddl for more details. Example for a user 'jboss'

    INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN) VALUES ('jboss','JBoss User','jboss@xxx','true','true');