我有一个使用 JPA/Hibernate 和 Google Guice 的应用程序。Guice 在 a 中被引导ServletContextListener
并设置了EntityManagerFactory
自身。
该应用程序在 Tomcat 7 上运行良好,但是当我部署到 JBoss AS7 时它失败了,因为 JBoss 决定在调用我的ServletContextListener
.
如何让 JBoss 不自动初始化 JPA 而是等待我ServletContextListener
这样做?
更新
根据詹姆斯在下面提供的链接:
在应用程序部署期间,检测到 JPA 使用(例如 persistence.xml 或 @PersistenceContext/Unit 注释)并将 Hibernate 依赖项注入到应用程序部署中。
https://docs.jboss.org/author/display/AS71/JPA+Reference+Guide#JPAReferenceGuide-Introduction
我需要弄清楚如何禁用此“自动检测”功能。
更新#2
可以通过将以下属性添加到 persistence.xml 来禁用 JPA 的容器管理:
<property name="jboss.as.jpa.managed" value="false" />
根据此主题,截至 2012 年 2 月,此功能仅在夜间构建中可用。