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> エレメント内の <session-type>Singleton</session-type> エレメントejb-jar.xml ファイルの <session> エレメント内の <session-type>Stateless</session-type> エレメントejb-jar.xml ファイルの <session> エレメント内の <session-type>Stateful</session-type> エレメント@Singleton、@Stateless、または @Stateful のアノテーション詳しくは、以下のリソースを参照してください。