9.3.1 CDIの対象となるアプリケーション
CDI 2.0仕様では,beans.xmlファイルの有無に関係なく,CDI管理対象クラスを含んだすべてのアーカイブがCDIの管理対象になります。このとき,メッセージKDJE59300-I,KDJE59301-I,KDJE59302-Iは出力されません。ただし,ejbserver.javaee.cdi.beansXmlRequiredにtrue(大文字小文字は区別しない)を指定した場合,CDI 1.0仕様と同様にbeans.xmlファイルが存在するアーカイブだけがCDIの管理対象になり,アーカイブごとにbeans.xmlの有無に応じてメッセージKDJE59300-I,KDJE59301-I,KDJE59302-Iが出力されます。
なお,WARファイル※内のWEB-INF/lib以下のJARファイルをCDIの管理対象にするには,次のどちらかの条件を満たす必要があります。
-
ejbserver.javaee.cdi.webInfLibJarsEnabledがtrue,かつejbserver.javaee.cdi.beansXmlRequiredがfalse
-
ejbserver.javaee.cdi.webInfLibJarsEnabledがtrue,かつejbserver.javaee.cdi.beansXmlRequiredがtrueで,META-INF/beans.xmlが存在する
注※ 展開ディレクトリ形式の場合,WARファイルはWARディレクトリを意味します。
このときメッセージKDJE42412-I,およびKDJE59330-Iが出力される場合があります。
メッセージKDJE42412-Iは,WARファイルごとに次の条件をすべて満たす場合だけ出力されます。
-
ejbserver.javaee.cdi.webInfLibJarsEnabledがtrueである
-
WARファイル内のWEB-INF/classesまたはWEB-INF/lib以下のJARファイルのどれかがCDIの管理対象である
メッセージKDJE59330-Iは,WARファイル内のWEB-INF/lib以下のJARファイルごとに次の条件をすべて満たす場合だけ出力されます。
-
ejbserver.javaee.cdi.webInfLibJarsEnabledがtrueである
-
JARファイルがCDIの管理対象である
-
bean-discovery-modeがallである,またはbean-discovery-modeがannotatedでJARファイル内にCDI Beanが存在する
また,ejbserver.javaee.cdi.webInfLibJarsEnabledがtrueの場合,デプロイ性能に影響します。そのため,WARファイル内のWEB-INF/lib以下のJARファイルをCDIの管理対象にする必要がない場合は,ejbserver.javaee.cdi.webInfLibJarsEnabledをfalseにして,デプロイ性能への影響を抑えることができます。
J2EEモジュールの種類ごとに,beans.xmlファイルの格納先を示します。
J2EEモジュールの種類 |
beans.xmlの格納先 |
---|---|
EJB-JAR |
META-INF/beans.xml |
ライブラリJAR |
META-INF/beans.xml |
WAR(WEB-INF/classes) |
WEB-INF/beans.xml |
WAR(WEB-INF/lib以下のJAR) |
META-INF/beans.xml※ |
CDIの対象にできるコンポーネントのバージョン,およびCDIを使用できるオブジェクトについて次の表に示します。
コンポーネントの種類 |
サポートしているコンポーネントのバージョン |
使用できるオブジェクト |
---|---|---|
EJB |
EJB3.1以降 (ejb-jar.xmlのバージョンが3.1以降) |
Session Bean |
Servlet |
Servlet3.0以降 (web.xmlのバージョンが3.0以降) |
|
JSP |
JSP2.1以降 (web.xmlのバージョンが3.0以降) |
ELの構文に対応するオブジェクト |
JSF |
JSF2.1以降 (web.xmlのバージョンが3.0以降,およびアプリケーションサーバがサポートするJSFフレームワーク) |
ELの構文に対応するオブジェクト |
JAX-RS |
JAX-RS 2.0以降 (アプリケーションサーバが提供するJAX-RSエンジンに限る) |
|
Java Batch |
Java Batch 1.0以降 |
Batch Artifact |
WebSocket |
WebSocket 1.0以降 |
ServerEndpoint |