Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

第5章 リモート JNDI ルックアップ

5.1. JNDI へのオブジェクトの登録

Java Naming and Directory Interface (JNDI) は、Java ソフトウェアクライアントが名前でオブジェクトを検出およびルックアップすることを可能にするディレクトリーサービスの Java API です。

JNDI に登録されるオブジェクトがリモート JNDI クライアント (つまり、別の JVM で実行されるクライアント) によりルックアップされる場合は、オブジェクトを java:jboss/exported コンテキストで登録する必要があります。

たとえば、messaging-activemq サブシステムの JMS キューをリモート JNDI クライアントに公開する必要がある場合は、 JMS キューを java:jboss/exported/jms/queue/myTestQueue のように JNDI に登録する必要があります。リモート JNDI クライアントは、名前 jms/queue/myTestQueue で JMS キューをルックアップできます。

例: standalone-full(-ha).xml のキューの設定

<subsystem xmlns="urn:jboss:domain:messaging-activemq:1.0">
  <server name="default">
    ...
    <jms-queue name="myTestQueue" entries="java:jboss/exported/jms/queue/myTestQueue"/>
    ...
  </server>
</subsystem>

5.2. リモート JNDI の設定

リモート JNDI クライアントは接続し、JNDI からの名前でオブジェクトをルックアップできます。jboss-client.jar がクラスパスに指定されている必要があります。jboss-client.jarEAP_HOME/bin/client/jboss-client.jar で利用できます。

以下の例は、リモート JNDI クライアントの JNDI から myTestQueue キューをルックアップする方法を示しています。

例: MDB リソースアダプターの設定

Properties properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
properties.put(Context.PROVIDER_URL, "http-remoting://<hostname>:8080");
context = new InitialContext(properties);
Queue myTestQueue = (Queue) context.lookup("jms/queue/myTestQueue");