You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by Apache Wiki <wi...@apache.org> on 2009/03/04 10:15:17 UTC

[Ws Wiki] Update of "How do I access jUDDI from Java" by IvanKrizsan

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Ws Wiki" for change notification.

The following page has been changed by IvanKrizsan:
http://wiki.apache.org/ws/How_do_I_access_jUDDI_from_Java

New page:
{{{
/*
* JAXRExamples.java
* $Id$
*/
package com.ivan.jaxr;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Properties;

import javax.xml.registry.BulkResponse;
import javax.xml.registry.BusinessLifeCycleManager;
import javax.xml.registry.BusinessQueryManager;
import javax.xml.registry.Connection;
import javax.xml.registry.ConnectionFactory;
import javax.xml.registry.FindQualifier;
import javax.xml.registry.JAXRException;
import javax.xml.registry.RegistryService;

/**
 * This class contains JAXR examples doing the following:
 * - Connect to a UDDI registry.
 * - Query the UDDI registry for organization(s).
 * 
 * Configured to use a jUDDI instance running in Tomcat on
 * localhost.
 *
 * Requires the following libraries:
 * jaxr-api.jar, jaxr-impl.jar, jaxb-api.jar, jaxb-impl.jar,
 * jaxb-xjc.jar, jaxb1-impl.jar, saaj-api.jar, saaj-impl.jar,
 * activation.jar
 * 
 * @author Ivan A Krizsan
 */
public class JAXRExamples
{
    /* Constant(s): */
    private static final String PUBLICATION_MANAGER_URL =
        "http://localhost:8080/juddi//publication";
    private static final String INQUIRY_MANAGER_URL =
        "http://localhost:8080/juddi/inquiry";

    /* Instance variable(s): */
    private BusinessQueryManager mBusinessQueryMgr;
    private BusinessLifeCycleManager mBusinessLifecycleMgr;

    
    /**
     * Prepares for access to the UDDI registry.
     */
    public void init() throws JAXRException
    {
        /*
         * Retrieve a factory that creates JAXR connections.
         * A connection represents a session with a registry provider
         * and maintains state for the session.
         */
        ConnectionFactory theJAXRConnectionFactory =
            ConnectionFactory.newInstance();

        /* 
         * Set the inquiry and publication manager URLs to be used
         * by the connection factory.
         */
        Properties theUDDIConnectionProperties = new Properties();
        theUDDIConnectionProperties.setProperty(
            "javax.xml.registry.queryManagerURL", INQUIRY_MANAGER_URL);
        theUDDIConnectionProperties.setProperty(
            "javax.xml.registry.lifeCycleManagerURL", PUBLICATION_MANAGER_URL);

        theJAXRConnectionFactory.setProperties(theUDDIConnectionProperties);

        /* Finally we can retrieve a JAXR connection. */
        Connection theUDDIConnection =
            theJAXRConnectionFactory.createConnection();

        /* 
         * Get the RegistryService, which is used to retrieve,
         * among other things:
         * - BusinessLifeCycleManager which allows for creation and
         *   deletion of organizations, services, associations,
         *   classification schemes and concepts.
         * - BusinessQueryManager which allows for searching for the
         *   above entity types.
         * - Retrieving a CapabilityProfile object from which the
         *   capability level and JAXR version can be retrieved.
         */
        RegistryService theRegistryService =
            theUDDIConnection.getRegistryService();

        mBusinessQueryMgr = theRegistryService.getBusinessQueryManager();
        mBusinessLifecycleMgr =
            theRegistryService.getBusinessLifeCycleManager();
    }

    /**
     * @param args Command line arguments, not used.
     */
    public static void main(String[] args)
    {
        try
        {
            JAXRExamples theInstance = new JAXRExamples();
            theInstance.init();
            
            theInstance.queryForOrganization();
        } catch (JAXRException theException)
        {
            theException.printStackTrace();
        }
    }

    /**
     * Queries the UDDI registry for all organizations registered.
     * 
     * @throws JAXRException If error occurs querying registry.
     */
    public void queryForOrganization() throws JAXRException
    {
        /*
         * Create list of query qualifiers. In this case:
         * - Case sensitive matching of organization names.
         * - Sort found organisations by name in descending order.
         */
        ArrayList theQueryQualifiers = new ArrayList();
        theQueryQualifiers.add(FindQualifier.CASE_SENSITIVE_MATCH);
        theQueryQualifiers.add(FindQualifier.SORT_BY_NAME_DESC);

        /* Create list of organization names to search for. */
        ArrayList theOrganizationNames = new ArrayList();
        theOrganizationNames.add("%%");

        /* Use the business query manager to query for the organization(s). */
        BulkResponse theQueryResponse =
            mBusinessQueryMgr.findOrganizations(theQueryQualifiers,
                theOrganizationNames, null, null, null, null);

        /* Retrieve list of exceptions and results from the response. */
        Collection theQueryExceptions = theQueryResponse.getExceptions();
        Collection theOrganizations = theQueryResponse.getCollection();

        /* Output the result to the console. */
        System.out.println("Listing organizations:");
        for (Object theOrganization : theOrganizations)
        {
            System.out.println("An organization: " + theOrganization);
        }
    }
}
}}}