在 Contexts and Dependency Injection (CDI) 1.0 OpenWebBeans 實作中,即使在階段作業 Bean 類別中宣告了具有 @Produces 註釋的非靜態欄位(儘管該行為不符合 CDI 1.0 規格),應用程式仍可順利啟動。
在 CDI 1.2 Weld 實作中,應用程式不會啟動,並且會擲出下列異常狀況:
WELD-000096: 階段作業 Bean 中的 Producer 欄位必須為靜態。已在 [{1}] 中宣告欄位 [{0}]。
將靜態修飾元新增至階段作業 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 註釋如需相關資訊,請參閱下列資源: