JAXR Configuration
This is not a tutorial on JAXR programming. For that you can visit the Sun website for a tutorial or pick a book like "J2EE Web Services" by Richard Monson-Haefel. If you need samples, please check the testsuite in the JBoss source repository. (Task is tests-scout-jaxr)
System Properties Configuration
System properties that need to be set are as follows:
javax.xml.registry.ConnectionFactoryClass = org.apache.ws.scout.registry.ConnectionFactoryImpl jaxr.query.url = http://localhost:8080/juddi/inquiry jaxr.publish.url = http://localhost:8080/juddi/publish juddi.proxy.transportClass = org.jboss.jaxr.juddi.transport.SaajTransport
Important JAXR Interfaces
RegistryService
BusinessLifecycleManager
BusinessQueryManager
protected void getJAXREssentials() throws JAXRException
{
rs = connection.getRegistryService();
blm = rs.getBusinessLifeCycleManager();
bqm = rs.getBusinessQueryManager();
}
Sample Code
1. Getting a Connection
String queryurl = System.getProperty("jaxr.query.url");
String puburl = System.getProperty("jaxr.publish.url");
Properties props = new Properties();
props.setProperty("javax.xml.registry.queryManagerURL",
queryurl);
props.setProperty("javax.xml.registry.lifeCycleManagerURL",
puburl);
String transportClass = System.getProperty("juddi.proxy.transportClass", "org.jboss.jaxr.juddi.transport.SaajTransport");
System.setProperty("juddi.proxy.transportClass", transportClass);
try
{
// Create the connection, passing it the configuration properties
factory = ConnectionFactory.newInstance();
factory.setProperties(props);
connection = factory.createConnection();
2. Authentication with the registry
/**
* Does authentication with the uddi registry
*/
protected void login()
{
PasswordAuthentication passwdAuth = new PasswordAuthentication(userid,
passwd.toCharArray());
Set creds = new HashSet();
creds.add(passwdAuth);
try
{
connection.setCredentials(creds);
} catch (JAXRException e)
{
e.printStackTrace();
fail(e.getMessage());
}
}
3. Search a Business
public void searchBusiness(String bizname) throws JAXRException
{
try
{
// Get registry service and business query manager
rs = connection.getRegistryService();
bqm = rs.getBusinessQueryManager();
// Define find qualifiers and name patterns
Collection findQualifiers = new ArrayList();
findQualifiers.add(FindQualifier.SORT_BY_NAME_ASC);
Collection namePatterns = new ArrayList();
namePatterns.add("%" + bizname + "%");
// Find based upon qualifier type and values
BulkResponse response =
bqm.findOrganizations(findQualifiers,
namePatterns,
null,
null,
null,
null);
// check how many organisation we have matched
Collection orgs = response.getCollection();
if (orgs == null)
{
if ("true".equalsIgnoreCase(debugProp))
System.out.println(" -- Matched 0 orgs");
} else
{
if ("true".equalsIgnoreCase(debugProp))
System.out.println(" -- Matched " + orgs.size() + " organizations -- ");
// then step through them
for (Iterator orgIter = orgs.iterator(); orgIter.hasNext();)
{
Organization org = (Organization) orgIter.next();
if ("true".equalsIgnoreCase(debugProp))
{
System.out.println("Org name: " + getName(org));
System.out.println("Org description: " + getDescription(org));
System.out.println("Org key id: " + getKey(org));
}
....
Comments