FileDocCategorySizeDatePackage
findBusiness2.javaAPI DocExample4658Tue Oct 09 11:03:40 BST 2001com.ecerami.uddi

findBusiness2.java

/*
 * Copyright (c) 2001 Ethan Cerami.  All rights reserved.
 * This code is from the book XML Web Services Essentials.
 * It is provided AS-IS, WITHOUT ANY WARRANTY either expressed or implied.
 * You may study, use, and modify it for any non-commercial purpose.
 * You may distribute it non-commercially as long as you retain this notice.
*/
package com.ecerami.uddi;

import java.util.*;
import com.ibm.uddi.client.UDDIProxy;
import com.ibm.uddi.UDDIException;
import com.ibm.uddi.util.*;
import com.ibm.uddi.response.DispositionReport;
import com.ibm.uddi.response.BusinessInfo;
import com.ibm.uddi.response.BusinessList;
import java.net.MalformedURLException;
import org.apache.soap.SOAPException;

public class findBusiness2 {
  private UDDIProxy proxy;

  /**
   * Main Method
   */
  public static void main (String args[]) {
      try {
        findBusiness2 inquiry = new findBusiness2();
        System.out.println ("Finding by D&B DUNS");
        BusinessList list = inquiry.find_by_D_and_B ("04-693-3052");
        inquiry.print_businesses (list);

        System.out.println ("Finding by NAICS");
        list = inquiry.find_by_NAICS("51121");
        inquiry.print_businesses(list);

        System.out.println ("Finding by Exact Name Search");
        list = inquiry.find_by_exact_name("Microsoft Corporation");
        inquiry.print_businesses (list);

      } catch (MalformedURLException e) {
        e.printStackTrace();
      } catch (SOAPException e) {
        e.printStackTrace();
      } catch (UDDIException e) {
        //  Extract UDDI Disposition Report
        DispositionReport dr = e.getDispositionReport();
        if (dr!=null) {
          System.out.println("UDDIException faultCode:" + e.getFaultCode() +
            "\n errno:"    + dr.getErrno() +
            "\n errCode:"  + dr.getErrCode() +
            "\n errInfoText:" + dr.getErrInfoText());
        }
        e.printStackTrace();
        }
   }

   /**
    * Constructor
    */
   public findBusiness2 () throws MalformedURLException {
      proxy = new UDDIProxy();
      proxy.setInquiryURL("http://uddi.microsoft.com/inquire");
   }

  /**
    * Find by D&B DUNS Number
    * @param duns D&B DUNS Number
  */
  public BusinessList find_by_D_and_B (String duns)
    throws SOAPException, UDDIException {
    Vector keyedReferenceVector = new Vector();
    KeyedReference keyedRef = new KeyedReference
      ("dnb-com:D-U-N-S", duns);
    keyedRef.setTModelKey ("uuid:8609c81e-ee1f-4d5a-b202-3eb13ad01823");
    keyedReferenceVector.addElement (keyedRef);
    IdentifierBag idBag = new IdentifierBag ();
    idBag.setKeyedReferenceVector(keyedReferenceVector);

    //  Find Matching Businesses
    BusinessList bl = proxy.find_business(idBag, null, 0);
    return bl;
  }

  /**
   * Find by NAICS Code
   * @param naics NAICS Code
   */
  public BusinessList find_by_NAICS (String naics)
    throws SOAPException, UDDIException {
    Vector keyedReferenceVector = new Vector();
    KeyedReference keyedRef = new KeyedReference ("ntis-gov:naics:1997", naics);
    keyedRef.setTModelKey ("uuid:C0B9FE13-179F-413D-8A5B-5004DB8E5BB2");
    keyedReferenceVector.addElement (keyedRef);
    CategoryBag categoryBag = new CategoryBag ();
    categoryBag.setKeyedReferenceVector(keyedReferenceVector);
    BusinessList bl = proxy.find_business(categoryBag, null, 0);
    return bl;
  }

  /**
   * Find by Exact Name Match
   * Illustrates use of UDDI Find Qualifiers
   * @param businessName Business Name
   */
  public BusinessList find_by_exact_name (String businessName)
    throws SOAPException, UDDIException  {
    Vector fqs = new Vector();
    FindQualifiers findQualifiers = new FindQualifiers ();
    FindQualifier fq = new FindQualifier(FindQualifier.exactNameMatch);
    fqs.addElement(fq);
    findQualifiers.setFindQualifierVector(fqs);
    BusinessList list = proxy.find_business (businessName, findQualifiers, 0);
    return list;
  }

  /**
   * Print Business List
   * @param list Business List Object
   */
  public void print_businesses (BusinessList bl) {
    Vector businessInfoVector  = bl.getBusinessInfos().getBusinessInfoVector();
    // Print name and business key for each matching business
    for (int i = 0; i < businessInfoVector.size(); i++) {
        BusinessInfo businessInfo = (BusinessInfo)businessInfoVector.elementAt(i);
        String name = businessInfo.getNameString();
        String businessKey = businessInfo.getBusinessKey();
        System.out.println (name+":  "+businessKey);
    }
  }
}