2

以下のように、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 の両方で同じサービスを使用するにはどうすればよいですか?

4

1 に答える 1