2008-09-16 10 views
9

Estoy tratando de cargar datos de prueba en un DB de prueba durante una compilación maven para pruebas de integración. persistence.xml se está copiando al target/test-classes/META-INF/ correctamente, pero recibo esta excepción cuando se ejecuta la prueba.persistence.xml no encontrado durante la prueba de maven

javax.persistence.PersistenceException: proveedor Sin Persistencia de EntityManager llamado aimDatabase

Parece que no se trata de encontrar o persistence.xml carga.

Respuesta

2

Si esto está en windows, puede usar el procmon de sysinternal para averiguar si está marcando el camino correcto.

Solo filtro por ruta -> contiene -> persistencia.xml. Procmon recuperará cualquier intento de abrir un archivo llamado persistenc.xml, y puede verificar para ver la ruta o las rutas que se prueban.

Vea aquí para más detalle en procmon: http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

2

que tenían el mismo problema y no era que no podía encontrar el archivo persistence.xml, pero que no se pudo encontrar el proveedor especificado en el XML.

Asegúrese de que tiene las dependencias correctas del proveedor JPA y la definición correcta del proveedor en su archivo xml.

es decir. <provider>oracle.toplink.essentials.PersistenceProvider</provider>

Con maven, tuve que instalar las 2 jarras esenciales de toplink ya que no había repositorios públicos que tuvieran las dependencias.

1

que tiene el mismo problema, hace algunos ajustes en el proyecto y finaly encuentran siguiente problema (descripción del error más claro): en oracle.toplink.essentials.ejb.cmp3.persistence. PersistenceUnitProcessor.computePURootURL (PersistenceUnitProcessor.java:248)

Con esa información se ha recordado una norma primaria: SIN ESPACIOS EN BLANCO nombres de ruta !!!

Pruebe esto. Funciona para nosotros smile. Quizás algún día esto se arregle.

Espero que esto funcione para usted. Buena suerte.

6

estoy usando Maven2, y me había olvidado de añadir esta dependencia en mi pom.xml:

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
    <version>3.4.0.GA</version> 
</dependency> 
+0

muy bueno! Mi error también :) Gracias – artaxerxe

16

acabamos de resolver el mismo problema con un proyecto de APP basado Maven/Eclipse.

Tenía mi directorio META-INF en src/main/java con la consecuencia de que no se copió en el directorio de destino antes de la fase de prueba.

Al mover este directorio a src/main/resources se solucionó el problema y se aseguraba de que el archivo META-INF/persistence.xml estaba presente en target/classes cuando se ejecutaban las pruebas.

I piensan que la APP faceta poner mi archivo META-INF/persistence.xml en src/main/java, que resultó ser la raíz de mi problema.

+0

+1: Tuve un problema similar, y su sugerencia lo solucionó. – Raedwald

+0

¡Muchas gracias, esto ahorró horas de resolución de problemas! – javydreamercsw

+0

¡Gracias, loooottt! – Sara

1

¿Está su persistence.xml ubicado en scr/test/resources? Porque estaba enfrentando problemas similares.

Todo funciona bien siempre y cuando mi persistence.xml se encuentra en src/main/resources.

Si muevo persistence.xml a src/test/recursos nada funciona más.

La única respuesta es útil, pero es triste aquí: http://jira.codehaus.org/browse/SUREFIRE-427

parece que no es posible en este momento por razones poco claras. :-(

Cuestiones relacionadas