IBM Websphere 8.0 を使用しています。すべての CDI Bean を JAR に直接 ear ファイルにパッケージ化して、ear アーカイブを作成しようとしています。戦争マニフェストには、パッケージ化された jar の名前がリストされています。
私の問題は、アプリケーションが機能しているように見えても、このスタックトレースが表示されることです
Caused by: javax.enterprise.context.ContextNotActiveException: WebBeans context with scope type annotation @RequestScoped does not exist within current thread
at org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:321)
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
at org.apache.webbeans.conversation.ConversationImpl_$$_javassist_0.isTransient(ConversationImpl_$$_javassist_0.java)
at org.apache.webbeans.jsf.WebBeansPhaseListener.beforePhase(WebBeansPhaseListener.java:93)
at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:76)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:159)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)
私はそれを理解するのに苦労しています。jar を WEB-INF/lib に戻すとすぐに、SystemOut ログにこのスタックトレースがなくても、アプリケーションは再び正常に動作します。IBMのようなクラスローダー階層がある場合、誰かが光を当てるか、特にCDIとクラスローダーに関する記事に私を案内してください。
私のアプリケーションは、PARENT_FIRST の war クラスローダーポリシーと war ごとのクラスローダーを使用して、アプリケーションに PARENT_FIRST クラスローディングを使用しています。どんな助けでも大歓迎です