以下のように、EntityManager を Bean (サービス層内にある) に注入します。
@Inject
EntityManager entityManager
そして、これらのサービスを ManagedBean 内 (ビュー レイヤー内にあります) で使用します。すべて正常に動作します。
Stateless WebService 内にこれらのサービスを挿入すると、問題が発生します。上記のコードと同じ方法を使用して、Stateless WebService に注入された EntityManager。entityManager が ConversationScoped であるため、次のエラーが発生します。
org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.enterprise.context.ConversationScoped
at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:598) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
at org.jboss.weld.bean.proxy.ContextBeanInstance.getInstance(ContextBeanInstance.java:71) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
at org.jboss.weld.bean.proxy.ProxyMethodHandler.invoke(ProxyMethodHandler.java:104) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
どうすればこの問題を解決できますか? View Layer と WebServices Layer の両方で同じサービスを使用するにはどうすればよいですか?