2.4.5 Enterprise Beanの別名の設定

ここでは,Enterprise Beanに別名を設定する方法について説明します。

Enterprise Beanの別名は,次の2種類の方法で設定できます。

それぞれの方法について説明します。

なお,この機能を使用する場合は,サーバ管理コマンドのusrconf.propertiesで別名を使用するかどうかを指定しておく必要があります。設定方法については,「2.4.7 実行環境での設定」を参照してください。

<この項の構成>
(1) cosminexus.xmlで設定する方法
(2) アノテーションで指定する方法
(3) サーバ管理コマンドとアノテーションの両方で別名を設定した場合

(1) cosminexus.xmlで設定する方法

Enterprise Beanの別名を設定するには,cosminexus.xmlの<ejb-jar>タグ内に指定します。cosminexus.xmlでのEnterprise Beanの別名の設定について次の表に示します。

表2-11 cosminexus.xmlでのEnterprise Beanの別名を設定

項目指定するタグ設定内容
リモートインタフェース<session>-<optional-name>タグSession Beanのリモートインタフェースの別名を指定します。
<entity>-<optional-name>タグEntity Beanのリモートインタフェースの別名を指定します。
ローカルインタフェース<session>-<local-optional-name>タグSession Beanのローカルインタフェースの別名を指定します。
<entity>-<local-optional-name>タグEntity Beanのローカルインタフェースの別名を指定します。

指定するタグの詳細は,マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(アプリケーション/リソース定義)」の「2.2 Cosminexusアプリケーション属性ファイル(cosminexus.xml)で指定する各属性の詳細」を参照してください。

参考
Enterprise Beanの別名は,アノテーションで設定することもできます。アノテーションによって別名が設定されている場合に,サーバ管理コマンドで異なる別名を設定すると,サーバ管理コマンドで設定した値が有効になります。
詳細は,「(3) サーバ管理コマンドとアノテーションの両方で別名を設定した場合」を参照してください。

(2) アノテーションで指定する方法

@Statelessまたは@StatefulのmappedName属性で指定します。

アノテーションで別名を指定する場合のコーディング例を次に示します。この例は,@StatelessのmappedName属性にStateless Session Beanの別名「MyFoo」を設定する場合の例です。

@Stateless(mappedName="MyFoo")
public class FooEB implements FooIF {
   ...
}
 
public interface FooIF {
...
}

@Stateless,@StatefulのmappedName属性に指定した別名は,Session Bean属性ファイルの<hitachi-session-bean-property><mapped-name>タグに設定されます。

(3) サーバ管理コマンドとアノテーションの両方で別名を設定した場合

@Stateless,@StatefulのmappedName属性を指定して別名を指定している場合に,cosminexus.xmlで<optional-name>タグまたは<local-optional-name>タグに別名を設定したときには,<optional-name>タグおよび<local-optional-name>タグの指定が有効になります。

サーバ管理コマンドとアノテーションの両方で別名を指定した場合に有効になるタグについて,次の表に示します。

表2-12 サーバ管理コマンドとアノテーションの両方で別名を指定した場合に有効になるタグ

別名の設定対象@Stateless,@StatefulのmappedName属性だけを指定<optional-name>タグ,<local-optional-name>タグだけを指定@Stateless,@StatefulのmappedName属性および<optional-name>タグ,<local-optional-name>タグの両方を指定した場合
リモートインタフェース<mapped-name>タグ<optional-name>タグ<optional-name>タグ
ローカルインタフェース<mapped-name>タグ<local-optional-name>タグ<local-optional-name>タグ

注※ @Stateless,@StatefulのmappedName属性に指定した値が設定されるタグです。