UDDI 用 JAXR プロバイダーの使用
Java™ API for XML Registries (JAXR) プロバイダーの使用を開始するには、サンプル・プログラムを使用できます。 また、クラス・ライブラリー、認証とセキュリティー、内部分類構造、およびロギングとメッセージについても考慮する必要があります。
このタスクについて

手順
- インスタンス ConnectionFactory を取得するには、レジストリーへの接続を作成し、編成をレジストリーに保存します。
以下のサンプル・プログラムを参照してください。
ローカル・ホスト (localhost) への参照はすべて、UDDI レジストリーが実行される特定の IBM® i マシンへの参照に置き換えてください。
import java.net.PasswordAuthentication; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Properties; import java.util.Set; import javax.xml.registry.BulkResponse; import javax.xml.registry.BusinessLifeCycleManager; import javax.xml.registry.Connection; import javax.xml.registry.ConnectionFactory; import javax.xml.registry.JAXRException; import javax.xml.registry.RegistryService; import javax.xml.registry.infomodel.Key; import javax.xml.registry.infomodel.Organization; public class JAXRSample { public static void main(String[] args) throws JAXRException { //Tell the ConnectionFactory to use the JAXR provider for UDDI System.setProperty("javax.xml.registry.ConnectionFactoryClass", "com.ibm.xml.registry.uddi.ConnectionFactoryImpl"); ConnectionFactory connectionFactory = ConnectionFactory.newInstance(); //Set the URLs for the UDDI inquiry and publish APIs. //These must be the URLs of the UDDI version 2 APIs. Properties props = new Properties(); props.setProperty("javax.xml.registry.queryManagerURL", "http://localhost:9080/uddisoap/inquiryapi"); props.setProperty("javax.xml.registry.lifeCycleManagerURL", "http://localhost:9080/uddisoap/publishapi"); connectionFactory.setProperties(props); //Create a Connection to the UDDI registry accessible at the above URLs. Connection connection = connectionFactory.createConnection(); //Set the user ID and password used to access the UDDI registry. PasswordAuthentication pa = new PasswordAuthentication("Publisher1", new char[] { 'p', 'a', 's', 's', 'w', 'o', 'r', 'd' }); Set credentials = new HashSet(); credentials.add(pa); connection.setCredentials(credentials); //Get the javax.xml.registry.BusinessLifeCycleManager interface, //which contains methods corresponding to UDDI publish API calls. RegistryService registryService = connection.getRegistryService(); BusinessLifeCycleManager lifeCycleManager = registryService.getBusinessLifeCycleManager(); //Create an Organization (UDDI businessEntity) with name //"Organization 1". Organization org = lifeCycleManager.createOrganization("Organization 1"); //Add the Organization to a Collection, ready to be saved in the UDDI //registry. Collection orgs = new ArrayList(); orgs.add(org); //Save the Organization in the UDDI registry. BulkResponse bulkResponse = lifeCycleManager.saveOrganizations(orgs); //Obtain the Organization Key (the UDDI businessEntity //businessKey) from the response. if (bulkResponse.getExceptions() == null) { //1 Organization was saved, so 1 key will be returned in the //response collection Collection responses = bulkResponse.getCollection(); Key organizationKey = (Key)responses.iterator().next(); System.out.println("¥nOrganization Key = " + organizationKey.getId()); } } }
- クラスパスが設定されていることを確認します。 UDDI 用 JAXR プロバイダーのクラス・ライブラリーは、ディレクトリー app_server_root/plugins 内のファイル com.ibm.uddi_1.0.0.jar にあります。 WebSphere Application Server で実行されている Java EE アプリケーションから JAXR API を使用する場合は、 必要なすべてのクラスが自動的にクラスパス上に配置されます。 この環境の外部から JAXR API を使用する場合は、 以下の .jar ファイルを Java クラスパス上に配置する必要があります。
- app_server_root/lib/bootstrap.jar
- app_server_root/plugins/com.ibm.uddi_1.0.0.jar
- app_server_root/plugins/com.ibm.ws.runtime_6.1.0
- UDDI 用 JAXR プロバイダーを使用するには、最初に ConnectionFactory 実装クラスの名前を指定する必要があります。 システム・プロパティー javax.xml.registry.ConnectionFactoryClass を com.ibm.xml.registry.uddi.ConnectionFactoryImpl に設定します。
このシステム・プロパティーを設定しないと、 値はデフォルトの com.sun.xml.registry,common.ConnectionFactoryImpl に設定されますが、これは検出されないため、ConnectionFactory.newInstance() メソッドの呼び出し時に JAXRException 例外が発生します。
UDDI 用 JAXR プロバイダーでは、Java Naming and Directory Interface (JNDI) を使用した ConnectionFactory の検索がサポートされていません。
- 接続固有のプロパティーを指定するには、接続を取得する前に JAXR ConnectionFactory に java.util.Properties オブジェクトを設定します。 これらのプロパティーの完全なリストは JAXR 仕様に記載されています。 以下の表には、最重要の 3 つのプロパティー、および UDDI 用 JAXR プロバイダーを使用して UDDI レジストリーにアクセスする場合に設定する値がリストされています。
表 1. UDDI 用 JAXR プロバイダーを使用して UDDI レジストリーにアクセスする場合に必要な接続固有のプロパティー. 以下の表では、種々のプロパティーとその説明をリストしています。 プロパティー 説明 javax.xml.registry.queryManagerURL UDDI バージョン 2 の UDDI レジストリーの照会 API の URL。 通常、このプロパティーは http://hostname:port/uddisoap/inquiryapi の形式です。 このプロパティーは必須です。 javax.xml.registry.lifeCycleManagerURL UDDI バージョン 2 の UDDI レジストリーの公開 API の URL。 通常、このプロパティーは http://hostname:port/uddisoap/publishapi の形式です。 このプロパティーを指定しないと、 値はデフォルトの javax.xml.registry.queryManagerURL プロパティーに設定されます。 ただし、通常、UDDI レジストリーには照会 API と公開 API に対して個別の URL があるため、両方のプロパティーを指定することが推奨されます。
javax.xml.registry.authenticationMethod レジストリーによる認証時に使用する認証方式。 これには、2 つの値、UDDI_GET_AUTHTOKEN および HTTP_BASIC のいずれかを指定できます。 値を指定しない場合のデフォルト値は UDDI_GET_AUTHTOKEN です。 詳しくは、以下のステップを参照してください。 必須の接続プロパティーは javax.xml.registry.queryManagerURL のみです。 ただし、javax.xml.registry.lifeCycleManagerURL を設定し、javax.xml.registry.security.authenticationMethod のデフォルト値を把握しておくことが推奨されます。 JAXR 仕様に定義されているその他の接続プロパティーはオプションであり、それらの値は UDDI レジストリーに固有ではありません。 JAXR Provider for UDDI は、これ以外のプロバイダー固有のプロパティーは 定義しません。
- UDDI レジストリーへの認証に JAXR プロバイダーが使用する方式を決定するには、接続プロパティー javax.xml.registry.authenticationMethod を設定します。 javax.xml.registry.authenticationMethod 接続プロパティーにより、JAXR プロバイダーが UDDI レジストリーを使用して認証する方法が決まります。このプロパティーでは、以下の 2 つの値がサポートされています。
- UDDI_GET_AUTHTOKEN
JAXR プロバイダーは、レジストリーへの認証に UDDI V2 get_authToken API を使用します。 接続クレデンシャルが設定されると、JAXR プロバイダーは自動的に get_authToken を呼び出します。 JAXR プロバイダーは、その呼び出しで戻された UDDI V2 authToken を保存し、後続の UDDI 公開 API 呼び出しで使用します。
- HTTP_BASIC
JAXR プロバイダーは、レジストリーへの認証に HTTP 基本認証を使用します。 WebSphere Application Server では、セキュリティーが有効になっている場合に HTTP 基本認証がサポートされています。 JAXR プロバイダーは、get_authToken 呼び出しを実行しません。 代わりに、UDDI API 呼び出し (照会と公開の両方) がある場合には、HTTP 基本認証を使用してユーザー名とパスワードが HTTP ヘッダーで送信されます。 UDDI レジストリーが HTTP 基本認証を必要としない場合は、 クレデンシャルは無視されます。
このプロパティーを設定しない場合のデフォルトの認証メソッドは UDDI_GET_AUTHTOKEN です。
- UDDI_GET_AUTHTOKEN
- Secure Sockets Layer (SSL) を使用して UDDI 用 JAXR プロバイダーと UDDI レジストリーの間の HTTP トラフィックを暗号化するには、UDDI JAXR プロバイダーでの SSL の使用を参照してください。
- カスタムの内部分類構造を指定する場合は、JAXR プロバイダー用のカスタム内部分類構造の作成を参照してください。
- UDDI4J ロギングをオンに切り替えるには、org.uddi4j.logEnabled システム・プロパティーを true に設定します。 UDDI 用 JAXR プロバイダーは UDDI4J バージョン 2 を使用して UDDI レジストリーと通信し、 UDDI4J にはそれ独自のロギングがあります。
サブトピック
UDDI の Java API for XML Registries (JAXR) プロバイダー
Java API for XML Registries (JAXR) は、 UDDI (バージョン 2 のみ) および ebXML レジストリーの両方にアクセスするための Java クライアント API です。 この API は、Java Platform, Enterprise Edition (Java EE) 仕様の一部です。UDDI JAXR プロバイダーでの SSL の使用
Secure Sockets Layer (SSL) を使用して UDDI 用 Java API for XML Registries (JAXR) プロバイダーと UDDI レジストリーの間の HTTP トラフィックを暗号化できます。JAXR プロバイダー用のカスタム内部分類構造の作成
カスタムの内部分類構造を作成し、それを Java API for XML Registries (JAXR) プロバイダーで使用可能にできます。UDDI 内部分類法のための JAXR プロバイダー
UDDI 用の Java API for XML Registries (JAXR) プロバイダーは、数多くの内部分類法を提供しています。JAXR プロバイダーのロギングとメッセージ
UDDI 対応の Java API for XML Registries (JAXR) プロバイダーは、UDDI4J ロギング、Commons Logging、およびいくつかの標準メッセージを使用します。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twsu_jaxr
ファイル名:twsu_jaxr.html