我有如下注的一個EJB:的EntityManager中的SpringBeanAutowiringInterceptor創建上下文
@Stateless
@Interceptors(SpringBeanAutowiringInterceptor.class)
的SpringBeanAutowiringInterceptor
創建ClassPathXmlApplicationContext
這反過來又創造了一些@Component
秒。其中一個@Component
s是DAO,因此喜歡注入EntityManager
。最好這應該是EJB的容器管理的EntityManager
(根據我目前的見解)。
如果我添加到EJB以下,將工作得很好:
@PersistenceContext
EntityManager entityManager;
如果然而,我做我的DAO(這是在春天這是它自己的上下文),後者不起作用。不管我是否具體說出單位名稱(unitName="test"
,「No bean named 'test' is defined
」與「No unique bean of type [javax.persistence.EntityManagerFactory]
」)。
我在Spring中嘗試過jee:jndi-lookup
,但是我在如何使JNDI中的實體管理器可用以使其工作方面遇到困難。這應該在我的persistence.xml
或甚至在另一個層面做到?
作爲Arquillian測試,我在JBOSS中運行所有這些,但我的目標環境是WAS。因此,我也應該避開容器特定的解決方案。這不是一個WAR項目,而是將EJB JAR包裝在一個EAR中。
我想我正在尋找這裏的一般概念或最佳實踐,以推動我前進。 (因此,我限制了包含在問題中的代碼量,儘管如果有幫助,我很樂意分享一些細節。)謝謝!
看看這個:http://stackoverflow.com/a/4717196/1850609 – acdcjunior 2013-04-26 02:23:23
大問題。 – Ceki 2014-02-05 14:38:00