2013-05-21 9 views
2

내부 ConversationScoped EntityManager를 사용합니다. 모든 것이 잘 작동합니다.어떻게 우리는 다음과 같이 (서비스 레이어 내부에 위치) 콩에 EntityManager를 주입 StatelessBean

이러한 서비스를 Stateless WebService에 삽입 할 때 문제가 발생합니다. 위 코드와 같은 방식으로 StatelessManager를 Stateless WebService에 삽입했다. 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 모두에서 동일한 서비스를 어떻게 사용할 수 있습니까?

답변

1

웹 서비스에 사용할 수있는 대화 범위가 없으므로 SO에서 상당히 다루어졌습니다 (현재 링크를 기억하지 마십시오). 관계없이 작동하는 자체 범위를 만들거나 Scoped EM으로 이동하십시오.