Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


2.6.5 Enterprise Beanの別名の設定

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

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

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

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

〈この項の構成〉

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

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

表2‒25 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のローカルインタフェースの別名を指定します。

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

参考

Enterprise Beanの別名は,アノテーションで設定することもできます。アノテーションによって別名が設定されている場合に,サーバ管理コマンドで異なる別名を設定すると,サーバ管理コマンドで設定した値が有効になります。

詳細は,「(3) サーバ管理コマンドとアノテーションの両方で別名を設定した場合」を参照してください。

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

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

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

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

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

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

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

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

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

別名の設定対象

@Stateless,@Stateful,@SingletonのmappedName属性だけを指定

<optional-name>タグ,<local-optional-name>タグだけを指定

@Stateless,@Stateful,@SingletonのmappedName属性および<optional-name>タグ,<local-optional-name>タグの両方を指定した場合

リモートインタフェース

<mapped-name>タグ

<optional-name>タグ

<optional-name>タグ

ローカルインタフェース

<mapped-name>タグ

<local-optional-name>タグ

<local-optional-name>タグ

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