Service Registry 3 2005Q4 開発者ガイド

Service Registry への接続の確立

JAXR クライアントで完了しなければならない最初のタスクは、レジストリへの接続の確立です。接続の確立には、次のタスクが必要です。

接続ファクトリの作成または検索

クライアントは、接続ファクトリから接続を作成します。ここでは、接続ファクトリを取得する 2 つの方法について説明します。

ConnectionFactory インスタンスの取得

スタンドアロンのクライアントプログラムで JAXR を使用するには、抽象クラス ConnectionFactory のインスタンスを取得する必要があります。そのためには、JAXR プロバイダの JAXRUtility クラスの getConnectionFactory メソッドを呼び出します。

import org.freebxml.omar.client.xml.registry.util.JAXRUtility;
...
ConnectionFactory factory = JAXRUtility.getConnectionFactory();

接続ファクトリの検索

J2EE アプリケーションで使用するための 1 つ以上の事前設定済み接続ファクトリが、JAXR プロバイダによって提供される場合があります。これらのファクトリを取得するために、クライアントは JNDI (Java Naming and Directory Interface) API を使用してファクトリを検索します。

配備された J2EE アプリケーションで JAXR を使用するには、JAXR リソースアダプタ (RA) によって提供される接続ファクトリを使用します。そのような接続ファクトリにアクセスするには、JNDI 名が eis/MYSOAR であるコネクタリソースを使用する必要があります。このリソースは Service Registry の設定プロセスで作成されます。J2EE コンポーネントでこの接続ファクトリを検索するには、次のようなコードを使用します。

import javax.xml.registry.*;
import javax.naming.*;
...
    Context context = new InitialContext();
    ConnectionFactory connFactory = (ConnectionFactory)
         context.lookup("java:comp/env/eis/MYSOAR");

接続の作成

接続を作成するために、クライアントはまず、アクセスされる 1 つ以上のレジストリの URL を指定する一連のプロパティーを作成します。Service Registry がローカルシステムに配備されている場合、次のコードは Service Registry のクエリーサービスと発行サービスの URL を指定します。この文字列中には改行を入れないでください。

Properties props = new Properties();
props.setProperty("javax.xml.registry.queryManagerURL",
    "http://localhost:6060/soar/registry/soap");
props.setProperty("javax.xml.registry.lifeCycleManagerURL",
    "http://localhost:6060/soar/registry/soap");

次に、クライアントは、「接続ファクトリの作成または検索」で説明されているように接続ファクトリを取得し、そのプロパティーを設定して、接続を作成します。次のコードは、これらのタスクを実行します。

ConnectionFactory factory =
     JAXRUtility.getConnectionFactory();
factory.setProperties(props);
Connection connection = factory.createConnection();

サンプルプログラムの makeConnection メソッドは、JAXR 接続の作成手順を示しています。

「接続の作成」では、接続に対して設定可能な 2 つのプロパティーを表示して説明しています。これらのプロパティーは JAXR 仕様で定義されています。

表 2–1 標準 JAXR 接続プロパティー

プロパティー名と説明 

データタイプ 

デフォルト値 

javax.xml.registry.queryManagerURL

ターゲットレジストリプロバイダ内のクエリーマネージャーサービスの URL を指定します。 

文字列 

なし 

javax.xml.registry.lifeCycleManagerURL

ターゲットレジストリプロバイダ内のライフサイクルマネージャーサービスの URL を指定します (レジストリ更新用)。 

文字列 

queryManagerURL に指定された値と同じ