17.7.1 インポート時の注意
-
クラスに宣言されたアノテーションが,外部のアーカイブファイルのクラスを参照していると,それらを単体でインポートできません。
-
EJB(ejb-jar.xmlのバージョン2.1以降またはejb-jar.xmlなし)
-
Servlet(web.xmlのバージョン2.4以降またはweb.xmlなし)
-
ライブラリJAR
外部参照は,次のどれかの方法で実施してください。
-
参照するクラスをすべてEARに含めてインポートする。
-
参照するクラスをすべてアプリケーションディレクトリに含めてインポートする。
-
外部参照しているクラスが含まれるJARファイルをコンテナ拡張ライブラリとして設定する。また,インポートするプロセスのクラスパスにも設定する。
操作方法ごとの設定例を示します。
- 例1:サーバ管理コマンドによって操作する場合
-
J2EEサーバ用オプション定義ファイルのキー(add.class.path)に参照しているJARファイルを指定します。また,サーバ管理コマンド用オプション定義ファイルのキー(USRCONF_JVM_CLASSPATH)に参照しているJARファイルを指定します。
- 例2:Management Serverによって操作する場合
-
運用管理ポータルによる論理J2EEサーバのJ2EEコンテナの設定で,拡張パラメタに"add.class.path=<参照しているJARファイル>"を指定します。
また,adminagentuser.cfgのadd.class.pathキーに参照しているJARファイルを指定します。さらに,サーバ管理コマンド用オプション定義ファイルのキー(USRCONF_JVM_CLASSPATH)に参照しているJARファイルを指定します。
-
-
次の場合はサーバ管理コマンド実行時にエラーになります。
-
@Resourceの要素type()にアプリケーションサーバでサポートしていないJava Typeを設定した場合。
-
EJB-JARにejb-jar.xmlがなく,かつ@Statelessまたは@Statefulアノテーションを宣言したクラスが一つもない場合。
-
DDのスキーマ定義の出現回数を上回るアノテーションを宣言していた場合。
-
-
WARファイルからEJB-JARファイルを参照している場合,WARファイルとEJB-JARファイルの両方を含んだアプリケーションにしてからインポートしてください。ただし,参照するインタフェースをWARファイルに含めている場合は,WARファイルを個別にインポートすることもできます。
-
アノテーションの属性にライブラリJAR内のクラスを記述している場合,ライブラリJARを含んだ形のアプリケーションとしてインポートしてください。
-
ほかのEJB-JARを参照するEJB-JARが存在する場合,両方のEJB-JARを含んだ形のアプリケーションとしてインポートしてください。ただし,参照する側のEJB-JARに,参照される側のインタフェースを含めている場合は,EJB-JARごとにインポートすることもできます。