我有一個使用JPA/Hibernate和Google Guice的應用程序。 Guice在ServletContextListener
引導,它自己設置EntityManagerFactory
。JBoss AS7自動加載JPA
該應用在Tomcat 7上正常工作,但是當我部署到JBoss AS7時,它失敗了,因爲JBoss決定在調用我的ServletContextListener
之前自動設置JPA。
我該如何讓JBoss自動初始化JPA,而不是等我的ServletContextListener
這麼做?
更新
根據詹姆斯下面提供的鏈接:
在應用部署,檢測JPA使用(例如persistence.xml中或@ PersistenceContext /單位註釋)並注入Hibernate依賴關係進入應用程序部署。
https://docs.jboss.org/author/display/AS71/JPA+Reference+Guide#JPAReferenceGuide-Introduction
我需要弄清楚如何禁用此「自動檢測」功能。
更新#2
JPA的集裝箱管理,可以通過添加以下屬性persistence.xml中被禁用:
<property name="jboss.as.jpa.managed" value="false" />
根據this topic,截至2012年2月,這一功能僅夜間可用。
這是很老,但我遇到了同樣的問題。我的額外問題是,我沒有使用persistence.xml,而是用java代碼聲明實體管理器工廠,似乎在那裏添加屬性被忽略,並沒有什麼區別。任何想法,如果它可以用這種方法解決? – andreadi 2014-04-24 10:43:10
@andreadi不知道。我只是在AS7上測試了一個應用程序,但從未在該項目中使用它。你最好打賭可能會問你一個新的問題與你的具體情況。 – 2014-04-24 14:20:11