Contexts and Dependency Injection (CDI) 1.0 OpenWebBeans 実装では、@Produces アノテーションが付けられた非静的フィールドがセッション Bean クラスで宣言されていても、アプリケーションは正常に開始できます (その動作が CDI 1.0 仕様に準拠していなくても)。
CDI 1.2 Weld 実装では、アプリケーションは開始せず、以下の例外をスローします。
WELD-000096: Producer fields on session beans must be static. Field [{0}] declared on [{1}].
この問題は、セッション Bean の producer フィールドに静的修飾子を追加することによって解決できます。
この規則により、セッション Bean クラスで宣言された @Produces アノテーションが付けられた非静的フィールドにフラグを立てます。
以下のエレメントとアノテーションが、クラスをセッション Bean として定義します。
ejb-jar.xml ファイル内の <session> 要素。 ejb-jar.xml ファイル内の <session> 要素。 ejb-jar.xml ファイル内の <session> 要素。@Singleton、@Stateless、または @Stateful のアノテーションアプリケーションでこれらの問題に対処するための自動修正が存在する。 この修正は カスタム設定をアプリケーションのビルドファイルにコピーすることで適用できます。
詳しくは、以下のリソースを参照してください。