Tengo una aplicación que utiliza JPA/Hibernate y Google Guice. Guice está bootstrapped en ServletContextListener
y configura el propio EntityManagerFactory
.JBoss AS7 cargando automáticamente JPA
La aplicación funciona bien en Tomcat 7, pero cuando implemente en JBoss AS7 falla porque JBoss decide configurar JPA automáticamente antes de invocar mi ServletContextListener
.
¿Cómo puedo hacer que JBoss no inicialice JPA automáticamente y en su lugar espere a que mi ServletContextListener
lo haga?
actualización
De acuerdo con el enlace que James proporciona a continuación:
Durante el despliegue de aplicaciones, se detecta el uso de la APP (por ejemplo persistence.xml o @ PersistenceContext/anotaciones unidad) e inyecta dependencias Hibernate en la implementación de la aplicación.
https://docs.jboss.org/author/display/AS71/JPA+Reference+Guide#JPAReferenceGuide-Introduction
tengo que encontrar la manera de desactivar esta función "detección automática".
Actualización # 2
Gestión de contenedores de APP se puede desactivar mediante la adición de la siguiente propiedad a la persistence.xml:
<property name="jboss.as.jpa.managed" value="false" />
Según this topic, a partir de febrero 2012 este funcionalidad sólo está disponible en una construcción nocturna.
Esto es bastante antiguo, pero me encontré con el mismo problema. Mi problema adicional es que no estoy usando persistence.xml sino declarando la fábrica del administrador de entidades con el código de Java y parece que agregar la propiedad allí se ignora y no hace ninguna diferencia. ¿Alguna idea de si se puede resolver con este enfoque? – andreadi
@andreadi No tengo idea. Solo estaba probando una aplicación en AS7, pero nunca avancé en su uso para ese proyecto. Lo mejor es que apueste por hacer una nueva pregunta con sus detalles. –