JAXR クライアントで完了しなければならない最初のタスクは、レジストリへの接続の確立です。接続の確立には、次のタスクが必要です。
クライアントは、接続ファクトリから接続を作成します。ここでは、接続ファクトリを取得する 2 つの方法について説明します。
スタンドアロンのクライアントプログラムで使用するために ConnectionFactory インスタンスを取得
配備された JavaTM 2 Platform, Enterprise Edition (J2EE) アプリケーションで使用するために接続ファクトリを検索
スタンドアロンのクライアントプログラムで 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 に指定された値と同じ |