8.5. その他のネーミング MBean
JBoss 内の JBossNS サーバーに組込み設定されている
NamingService MBean 以外に、JBoss に同梱されているネーミング関連のMBean サービスがいくつか存在します。JndiBindingServiceMgr、NamingAlias、ExternalContext、JNDIViewなどとなっています。
8.5.1. JNDI バインディングマネージャー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
JNDI バインディングマネージャーサービスにより、アプリケーションコードで利用できるよう JNDI にオブジェクトを素早くバインドできるようになります。バインディングサービスの MBean クラスは
org.jboss.naming.JNDIBindingServiceMgrとなっており、BindingsConfig属性を1つ含んでいます。この属性は、jndi-binding-service_1_0.xsd スキーマをに基づいた XMLドキュメントを受付けます。BindingsConfig 属性のコンテンツは JbossXB フレームワークを使いアンマーシャルされます。以下は MBean の定義で、JNDI バインディングマネージャーサービスの最も基本的なフォーム利用について示しています。
これは、JNDI名
bindexample/message でテキスト文字列 "Hello, JNDI!" をバインドします。アプリケーションは、他のJNDI 値の場合と同様にこの値を検索します。trim 属性は、前後のホワイトスペースを無視するよう指定します。この属性は単に説明のためだけに利用しているため、デフォルト値は True となっています。
InitialContext ctx = new InitialContext();
String text = (String) ctx.lookup("bindexample/message");
InitialContext ctx = new InitialContext();
String text = (String) ctx.lookup("bindexample/message");
文字列の値自体はあまり興味深いものではありません。JavaBeans プロパティエディターを利用できる場合、
type 属性を使って希望のクラス名を指定することができます。
<jndi:binding name="urls/jboss-home">
<jndi:value type="java.net.URL">http://www.jboss.org</jndi:value>
</jndi:binding>
<jndi:binding name="urls/jboss-home">
<jndi:value type="java.net.URL">http://www.jboss.org</jndi:value>
</jndi:binding>
editor 属性を使って、使用するプロパティエディターを指定することができます。
より複雑な構造については、BossXB対応のスキーマを使う場合もあります。以下の例では、
java.util.Properties オブジェクトのマッピング方法を説明しています。