第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.jar
は EAP_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");