deployment descriptorファイルに、参照するオブジェクトの情報を記述します。
ここでは、オブジェクトの参照に関するタグについて説明します。
参照
deployment descriptorファイルの詳細については、以下を参照してください。
J2EEアプリケーションクライアントは、“4.13 J2EEアプリケーションクライアントのdeployment descriptorファイルの詳細設定”
Webアプリケーションは、“7.5 Webアプリケーション環境定義ファイル(deployment descriptor)”
EJBアプリケーションは、Interstage StudioのEJB Deployment Descriptorエディタを使用します。詳細は、“Interstage Studio プログラマーズガイド”を参照してください。
各オブジェクトの情報はdeployment descriptorの以下のタグに記述します。
deployment descriptorのタグ  | 指定値  | 
|---|---|
EJB Homeオブジェクト  | |
EJB Local Homeオブジェクト  | |
Webサービス  | |
JDBCデータソース  | |
JMSコネクションファクトリ  | |
JavaMailメールセション  | |
URL(Uniform Resource Locator)  | |
connectorコネクションファクトリ  | |
JMS Destination  | |
JMS Destination  | |
環境エントリ  | |
指定不要  | UserTransaction  | 
ORB  | 
タグの説明
タグ  | 説明  | |
|---|---|---|
ejb-ref  | EJBの参照に関する定義をします。複数回指定可能です。  | |
  | description  | 利用者に伝えたい任意の情報を指定します。省略可能です。  | 
ejb-ref-name  | Enterprise Beanの参照名を、以下のPrefixを付加した名前で指定します(xxxxxは任意の文字列)。 
  | |
ejb-ref-type  | Enterprise Beanのアプリケーション種別を、次のいずれかで指定します。 
  | |
home  | homeインタフェース名を指定します。homeインタフェース名には、限定名(パッケージ付インタフェース名)を指定します。  | |
remote  | remoteインタフェース名を指定します。remoteインタフェース名には、限定名(パッケージ付インタフェース名)を指定します。  | |
ejb-link  | Enterprise Bean名を指定します。省略可能です。  | |
タグ  | 説明  | |
|---|---|---|
ejb-local-ref  | localインタフェースのEJBの参照に関する定義をします。複数回指定可能です。  | |
  | description  | 利用者に伝えたい任意の情報を指定します。省略可能です。  | 
ejb-ref-name  | Enterprise Beanの参照名を、以下のPrefixを付加した名前で指定します(xxxxxは任意の文字列)。 
  | |
ejb-ref-type  | Enterprise Beanのアプリケーション種別を、次のいずれかで指定します。 
  | |
local-home  | local homeインタフェース名を指定します。local homeインタフェース名には、限定名(パッケージ付インタフェース名)を指定します。  | |
local  | localインタフェース名を指定します。localインタフェース名には、限定名(パッケージ付インタフェース名)を指定します。  | |
ejb-link  | Enterprise Bean名を指定します。省略可能です。  | |
タグ  | 説明  | 
|---|---|
service-ref  | Webサービス参照に関する定義をします。複数回指定可能です。  | 
注) J2EE1.4以降のdeployment descriptorファイルで設定可能です。
タグ  | 説明  | |
|---|---|---|
resource-ref  | リソース参照に関する定義をします。複数回指定可能です。  | |
  | description  | 利用者に伝えたい任意の情報を指定します。省略可能です。  | 
res-ref-name  | 参照名を、リソースごとのPrefixを付加した名前で指定します(xxxxxは任意の文字列)。 
  | |
res-type  | lookupの際に受け取る型を限定名で指定します。限定名には、オブジェクトのクラス名またはインタフェース名を指定します。 
  | |
res-auth  | リソース接続者を、次のいずれかで指定します。 
  | |
タグ  | 説明  | |
|---|---|---|
resource-env-ref  | リソース環境参照に関する定義をします。複数回指定可能です。  | |
  | description  | 利用者に伝えたい任意の情報を指定します。省略可能です。  | 
resource-env-ref-name  | 参照名を、リソースごとのPrefixを付加した名前で指定します(xxxxは任意の文字列)。 
  | |
resource-env-ref-type  | lookupの際に受け取る型を限定名で指定します。限定名には、オブジェクトのクラス名またはインタフェース名を指定します。 
  | |
タグ  | 説明  | |
|---|---|---|
message-destination-ref  | Destination参照に関する定義をします。複数回指定可能です。  | |
  | description  | 利用者に伝えたい任意の情報を指定します。省略可能です。  | 
message-destination-ref-name  | Destination参照名を、以下のPrefixを付加した名前で指定します(xxxxxは任意の文字列)。 
  | |
message-destination-type  | lookupの際に受け取る型を限定名で指定します。限定名には、オブジェクトのクラス名またはインタフェース名を指定します。 
  | |
message-destination-usage  | 利用者にアプリケーション内でのリソースの使用方法を以下のいずれかで指定します。 
  | |
message-destination-link  | message-destination のmessage-destination-name に指定したJMS Destination名を指定します。省略可能です。  | |
注) J2EE1.4以降のdeployment descriptorファイルで設定可能です。J2EE1.3以前の場合、JMS Destinationの設定はresource-env-refに指定してください。
タグ  | 説明  | |
|---|---|---|
message-destination  | Destination参照の対応関係を定義します。  | |
  | description  | 利用者に伝えたい任意の情報を指定します。省略可能です。  | 
message-destination-name  | JMS Destination名を指定します。  | |
注) J2EE1.4以降のdeployment descriptorファイルで設定可能です。J2EE1.3以前の場合、JMS Destinationの設定はresource-env-refに指定してください。
タグ  | 説明  | |
|---|---|---|
env-entry  | 環境エントリの参照に関する定義をします。複数回指定可能です。  | |
  | description  | 利用者に伝えたい任意の情報を指定します。省略可能です。  | 
env-entry-name  | 環境エントリの参照名を指定します。  | |
env-entry-type  | 環境エントリ値の型を、次のいずれかで指定します。 
  | |
env-entry-value  | lookupで取得したい環境エントリ値を指定します。省略可能です。 
 Webアプリケーション以外の場合は、lookup時にjavax.naming.NamingExceptionまたはそのサブクラスが投げられます。  | |
注意
名前空間プレフィックスつきのタグは指定しないでください。
指定した場合、配備に失敗したり、名前変換機能が使用できなくなることがあります。
例:<pfx:ejb-ref>
message-destination-refとmessage-destinationについて
message-destination-ref-nameタグには、アプリケーションでJNDIのlookupメソッドで引数に指定する名前を指定してください。例えばアプリケーションで以下のようにlookupする場合には、message-destination-ref-nameタグには“jms/MyTopic”を指定してください。
    ctx.lookup("java:comp/env/jms/MyTopic")
message-destination-linkタグにはmessage-destinationタグのmessage-destination-nameタグに指定した値を指定してください。本指定は必須ではありません。
message-destinationのmessage-destination-nameタグにはJMS Destination名を指定できます。例えば対象となるDestinationが同一のアプリケーションが1つのejb-jarに含まれていた場合、lookupする名前が異なっている場合にはmessage-destinationを定義してmessage-destination-refからリンクすることで、lookupする名前が変更になったり、逆にDestination名が変更になっても変更箇所を局所化することができます。
記述例
  ・・・
  <ejb-ref>
    <description>EJB Information</description>
    <ejb-ref-name>ejb/EJB1</ejb-ref-name>
    <ejb-ref-type>Session</ejb-ref-type>
    <home>sample.ejbHome</home>
    <remote>sample.ejbRemote</remote>
    <ejb-link>SessionBean</ejb-link>
  </ejb-ref>
  ・・・  ・・・
  <ejb-local-ref>
      <ejb-ref-name>ejb/SampleBMP</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>
      <local-home>SampleBMPHome</local-home>
      <local>SampleBMPLocal</local>
      <ejb-link>SampleBMP</ejb-link>
  </ejb-local-ref>
  ・・・  ・・・
  <resource-ref>
    <description>JDBC Information</description>
    <res-ref-name>jdbc/DB1</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Application</res-auth>
  </resource-ref>
  ・・・J2EE1.4以降の場合
  ・・・
  <resource-ref>
    <description>JMS Information</description>
    <res-ref-name>jms/JMS1</res-ref-name>
    <res-type>javax.jms.TopicConnectionFactory</res-type>
    <res-auth>Application</res-auth>
  </resource-ref>
  <message-destination-ref>
    <description>JMS Information2</description>
    <message-destination-ref-name>jms/JMS2</message-destination-ref-name>
    <message-destination-type>javax.jms.Topic</message-destination-type>
    <message-destination-usage>Consumes</message-destination-usage>
    <message-destination-link>Topic001</message-destination-link>
  </message-destination-ref>
  ・・・
  <message-destination>
    <description>JMS Destination</description>
    <message-destination-name>Topic001</message-destination-name>
  </message-destination>
  ・・・J2EE1.3以前の場合
  ・・・
  <resource-ref>
    <description>JMS Information</description>
    <res-ref-name>jms/JMS1</res-ref-name>
    <res-type>javax.jms.TopicConnectionFactory</res-type>
    <res-auth>Application</res-auth>
  </resource-ref>
  <resource-env-ref>
    <description>JMS Information2</description>
    <resource-env-ref-name>jms/JMS2</resource-env-ref-name>
    <resource-env-ref-type>javax.jms.Topic</resource-env-ref-type>
  </resource-env-ref>
  ・・・ポイント
この設定例はJ2EEアプリケーションクライアントのdeployment descriptorです。
Webアプリケーション、およびEJBアプリケーションの場合は<resource-ref>タグと<resource-env-ref>タグの定義順を逆にしてください。
  ・・・
  <resource-ref>
    <res-ref-name>mail/Mail</res-ref-name>
    <res-type>javax.mail.Session</res-type>
    <res-auth>Application</res-auth>
  </resource-ref>
  ・・・  ・・・
  <resource-ref>
    <res-ref-name>url/SVURL</res-ref-name>
    <res-type>java.net.URL</res-type>
    <res-auth>Application</res-auth>
  </resource-ref>
  ・・・  ・・・
  <resource-ref>
    <res-ref-name>eis/RA01</res-ref-name>
    <res-type>javax.resource.cci.ConnectionFactory</res-type>
    <res-auth>Application</res-auth>
  </resource-ref>
  ・・・  ・・・
  <env-entry>
    <description>EnvProp</description>
    <env-entry-name>SValue</env-entry-name>
    <env-entry-type>java.lang.Short</env-entry-type>
    <env-entry-value>1024</env-entry-value>
  </env-entry>
  ・・・注意
deployment descriptorファイルに参照するオブジェクトの情報を記述しない場合、以下の注意事項があります。
コンテナが同じ名前のオブジェクトを自動的に検索します。このとき異なるリソースに同名のオブジェクトが存在すると誤動作する場合があるため注意してください。
名前変換機能は使用できません。
サブコンテキストの取得を行うことができません。
以下の条件を満たす場合は、Local Homeインタフェースが返却されます。
EJBアプリケーションを参照している
参照するEJBアプリケーションがHomeインタフェース/Local Homeインタフェースを両方実装している
Local Homeインタフェース/Homeインタフェースの両方を経由したlookup処理を行う場合は、EJBアプリケーション開発時、および運用時に以下の作業を行って下さい。
EJBアプリケーション開発時
deployment descriptorの編集
[参照EJBタグ]または[参照LocalEJBタグ]の“ejb-ref-name”に定義された“EnterpriseBeanの参照名”を重複しないよう編集して下さい。
EJBアプリケーションの開発
lookup時の引数に指定するEJBアプリケーション名がLocal Homeインタフェースを経由する場合と、Homeインタフェースを経由する場合とで重複しないよう記述して下さい。1で設定した参照EJBまたは参照LocalEJBに定義されたEnterpriseBeanの参照名に対応するEJBアプリケーション名を記述して下さい。
EJBアプリケーション運用時
名前変換ファイルの編集
名前変換ファイルを使用し、1で変更したEnterpriseBeanの参照名と、EJBアプリケーション内にてlookup時の引数で指定したEJBアプリケーション名との対応付けを行って下さい。