Show Table of Contents
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 バインディングマネージャーサービスの最も基本的なフォーム利用について示しています。
<mbean code="org.jboss.naming.JNDIBindingServiceMgr" name="jboss.tests:name=example1"> <attribute name="BindingsConfig" serialDataType="jbxb"> <jndi:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:jndi="urn:jboss:jndi-binding-service:1.0" xs:schemaLocation="urn:jboss:jndi-binding-service \ resource:jndi-binding-service_1_0.xsd"> <jndi:binding name="bindexample/message"> <jndi:value trim="true"> Hello, JNDI! </jndi:value> </jndi:binding> </jndi:bindings> </attribute> </mbean>
これは、JNDI名
bindexample/message
でテキスト文字列 "Hello, JNDI!
" をバインドします。アプリケーションは、他のJNDI 値の場合と同様にこの値を検索します。trim
属性は、前後のホワイトスペースを無視するよう指定します。この属性は単に説明のためだけに利用しているため、デフォルト値は True となっています。
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>
editor
属性を使って、使用するプロパティエディターを指定することができます。
<jndi:binding name="hosts/localhost"> <jndi:value editor="org.jboss.util.propertyeditor.InetAddressEditor"> 127.0.0.1 </jndi:value> </jndi:binding>
より複雑な構造については、BossXB対応のスキーマを使う場合もあります。以下の例では、
java.util.Properties
オブジェクトのマッピング方法を説明しています。
<jndi:binding name="maps/testProps"> <java:properties xmlns:java="urn:jboss:java-properties" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="urn:jboss:java-properties \ resource:java-properties_1_0.xsd"> <java:property> <java:key>key1</java:key> <java:value>value1</java:value> </java:property> <java:property> <java:key>key2</java:key> <java:value>value2</java:value> </java:property> </java:properties> </jndi:binding>