Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 保守/移行編


12.3.3 CDIの変更点

〈この項の構成〉

(1) beans.xml省略時のCDI有効/無効判定条件の変更

アプリケーションサーバ 11-20では,beans.xmlファイルの扱いとCDI有効/無効の判定条件はCDI 2.0仕様に従います。

CDI 1.2以降の仕様では,beans.xmlが格納されていないアプリケーションアーカイブであっても,CDIのアノテーションが使用されていると判定されると自動的にCDIが有効化されます。そのため,アプリケーションサーバ 09-87でデプロイできていたアプリケーションであっても,CDIが有効になることが想定されていないアプリケーションの場合は,アプリケーションサーバ 11-20ではデプロイに失敗するおそれがあります。

CDI 1.2以降の仕様では,そのような事態を避けるためにCDI 1.0基準の判定条件に戻すオプションを提供するよう規定されています。アプリケーションサーバ 11-20でもそのオプションを提供しています。CDI有効/無効の判定条件をCDI 1.0基準に戻すには,次の定義をJ2EEサーバ用ユーザプロパティに追加してください。

ejbserver.javaee.cdi.beansXmlRequired=true

(2) Portable Extension APIの扱いの変更

アプリケーションサーバ 09-87ではCDIのPortable Extension APIは非サポートとなっていて,Portable Extensionの実装クラスがクラスパス内に存在していても無視されていました。

アプリケーションサーバ 11-20でもユーザアプリケーションによるPortable Extension APIの使用は引き続き非サポートとなりますが,製品内部でCDIのPortable Extension APIを使用するためPortable Extensionの実装クラスが動作します。

Portable Extensionの実装クラス(javax.enterprise.inject.spi.Extensionインタフェースを実装したクラス)とそのサービス定義ファイル(META-INF/services/javax.enterprise.inject.spi.Extensionファイル)が格納されたJARファイルは,J2EEサーバのクラスパスに追加したり,アプリケーション内に格納したりしないでください。Portable Extensionの実装クラスが動作して,アプリケーションのデプロイに失敗したり,アプリケーションの動作が変わったりするおそれがあります。