Hitachi

Cosminexus V11 アプリケーションサーバ リファレンス API編


2.2.3 @Resource

〈この項の構成〉

(1) 説明

リソースへの参照を宣言します。クラス,メソッド,およびフィールドに設定できます。メソッドやフィールドに設定した場合,Dependency Injectionの対象となります。ただし,メソッドはsetメソッドである必要があります。

(2) 属性

@Resourceの属性の一覧を次の表に示します。

属性名

機能

name

リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。

type

リソースのJavaタイプを設定します。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。

authenticationType

リソースに使用する認証タイプを設定します。

shareable

リソースを共用するかどうかを設定します。

mappedName

参照先リソースを特定するためにリソース表示名やキュー名を設定します。

lookup

参照する別のリソース参照のPortable Global JNDI名,またはリソースの別名を設定します。

description

リソースの説明を設定します。

各属性の詳細を次に示します。

(a) name属性

String

説明

リソース参照の名称を設定します。設定した名称はJNDI名として使用されます。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。

なお,リソースの別名を指定することもできます。J2EEリソースの別名の設定については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「2.6.6 J2EEリソースの別名の設定」を参照してください。

デフォルト値
  • メソッドに設定した場合

    アノテーションを設定したクラス名/setメソッドのプロパティ

  • フィールドに設定した場合

    アノテーションを設定したクラス名/フィールド名

(b) type属性

Class

説明

リソースのJavaタイプを設定します。アノテーションをメソッドまたはフィールドに設定する場合,省略できます。

デフォルト値
  • メソッド設定した場合

    メソッドの引数の型

  • フィールドに設定した場合

    フィールドの型

type属性とDDの対応

type属性はJ2EE仕様と異なり,設定値(Java Type)によって対応するDDが変わります。Java Typeによって異なるDDの対応を次の表に示します。

表2‒29 type属性によるDDの対応表

type属性

J2EE仕様で対応するDDのタグ

アプリケーションサーバ仕様で対応するDDのタグ※1

java.lang.String※2

env-entry

env-entry

java.lang.Character※2

env-entry

env-entry

java.lang.Integer※2

env-entry

env-entry

java.lang.Boolean※2

env-entry

env-entry

java.lang.Double※2

env-entry

env-entry

java.lang.Byte※2

env-entry

env-entry

java.lang.Short※2

env-entry

env-entry

java.lang.Long※2

env-entry

env-entry

java.lang.Float※2

env-entry

env-entry

javax.xml.rpc.Service

service-ref

例外※3

javax.xml.ws.Service

service-ref

例外※3

javax.jws.WebService

service-ref

例外※3

javax.sql.DataSource

resource-ref

resource-ref

javax.jms.ConnectionFactory

resource-ref

resource-ref

javax.jms.QueueConnectionFactory

resource-ref

resource-ref

javax.jms.TopicConnectionFactory

resource-ref

resource-ref

javax.mail.Session

resource-ref

resource-ref

java.net.URL

resource-ref

例外※3

javax.resource.cci.ConnectionFactory

resource-ref

resource-ref

org.omg.CORBA_2_3.ORB

resource-ref

resource-ref

リソースアダプタによって定義されるほかのコネクションファクトリ

resource-ref

resource-env-ref

javax.jms.Queue

message-destination-ref

resource-env-ref

javax.jms.Topic

message-destination-ref

resource-env-ref

javax.resource.cci.InteractionSpec

resource-env-ref

例外※3

javax.transaction.UserTransaction

resource-env-ref

resource-env-ref

javax.xml.ws.WebServiceContext

未定義

resource-env-ref※4

上記以外のすべてのタイプ※5

resource-env-ref

resource-env-ref

注※1

mappedName要素に「!#」が含まれていた場合は,Java Typeとは関係なく,<resource-env-ref>タグに対応づけます。

注※2

標準DDから値を取得できないため,属性ファイルには表示しますが,DIは行いません。

注※3

インポート時に例外となります。

注※4

08-70より前のアプリケーションサーバでは,上記以外のすべてのタイプとして扱われます。

注※5

09-00以降のアプリケーションサーバでは,java.lang.Classとjava.lang.Enumのサブクラスは<env-entry>で扱われません。

(c) authenticationType属性

AuthenticationType

説明

リソースに使用する認証タイプを設定します。

デフォルト値

CONTAINER

(d) shareable属性

boolean

説明

リソースを共用するかどうかを設定します。

デフォルト値

true

(e) mappedName属性

String

説明

参照先リソースを特定するためにリソース表示名やキュー名を設定します。

リソース表示名に半角英数字およびアンダースコア(_)以外の文字を含む場合,半角英数字およびアンダースコア(_)以外の文字をアンダースコア(_)に置き換えて設定してください。

デフォルト値

""

mappedName属性の設定条件

mappedName属性はtype属性によって設定条件が変わります。@ResourceでのmappedName属性の設定条件を次の表に示します。

表2‒30 @ResourceのmappedName()の設定条件

設定条件(Java Type,リソースなど)

使用可否※1

java.lang.String

×

java.lang.Character

×

java.lang.Integer

×

java.lang.Boolean

×

java.lang.Double

×

java.lang.Byte

×

java.lang.Short

×

java.lang.Long

×

java.lang.Float

×

javax.xml.rpc.Service

×

javax.sql.DataSource

javax.jms.ConnectionFactory

javax.jms.QueueConnectionFactory

javax.jms.TopicConnectionFactory

javax.mail.Session

java.net.URL

×

javax.resource.cci.ConnectionFactory

org.omg.CORBA_2_3.ORB

×

javax.jms.Queue※2

javax.jms.Topic

javax.resource.cci.InteractionSpec

×

javax.transaction.UserTransaction

×

javax.ejb.EjbContext

×

javax.ejb.SessionContext

×

javax.ejb.TimerService

×

JavaBeansリソース

(凡例)

○:使用できます。

×:使用できません。

注※1

管理対象オブジェクトへの対応づけは,Java Typeに関係なく,mappedName要素で対応づけます。リソースアダプタの表示名と管理対象オブジェクト名の区切り文字には,「!#」を使用してください。

注※2

TP1/Message Queue - AccessまたはReliable Messagingを使用時にjavax.jms.Queueを使用する場合,リソースアダプタの表示名とキューの表示名の区切り文字には,「#」を使用してください。

(f) lookup属性

String

説明

参照する別のリソース参照のPortable Global JNDI名,またはリソースの別名を設定します。

デフォルト値

""

(g) description属性

String

説明

リソースの説明を設定します。

デフォルト値

""