entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Proyecto web no importa bien un proyecto JPA

Hola, espero que alguien me pueda ayudar.

Estoy haciendo un proyecto web que requiere la utilización de una base de datos. Para ello, decidí utilizar JPA con Eclipse Link. Esta parte parece que funciona, porque la he probado con algunos testeos y conecta perfectamente con la base de datos.

El problema surge cuando importo este proyecto en mi proyecto web dinámico en eclipse, tanto si lo hago como referencia al proyecto, como si coloco el correspondiente archivo JAR en la carpeta WEB-INF/lib. No tengo ningún error de compilación ni nada parecido. Pero cuando despliego el proyecto con un pequeño servlet de prueba, éste recoge una excepción con el siguiente mensaje:

No Persistence provider for EntityManager named Ayuda_Social_Model

Ayuda_Social_Model es la unidad de persistencia que definí en el persistence.xml del proyecto JPA, y que utilizo en el Persistence.createEntityManagerFactory. Os dejo a continuación el código del persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="Ayuda_Social_Model" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.Receptor</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.Ayuda</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.AyudaPK</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.Entidad</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.NivelAcceso</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.Oferta</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.OfertaPK</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.Servicio</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.UnidadFamiliar</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.Usuario</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.Calle</class>
        <class>org.aytoAlcalaHenares.ayudaSocial.model.Domicilio</class>
        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
            <property name="javax.persistence.jdbc.user" value="sa">
            <property name="javax.persistence.jdbc.password" value="pcpd">
            <property name="javax.persistence.jdbc.url" value="jdbc:sqlserver://SQLSERVERTEST:1433;databaseName=ayuda_social">
        </properties>
    </persistence-unit>
</persistence>

Creo que mi proyecto web no consigue encontrar el persistence.xml, porque he cambiado el nombre en el createEntityManagerFactory y me sale el mismo error (con el otro nombre de unidad inexistente, claro). No sé el motivo y, por muchas soluciones que he probado, no consigo que funcione.

PD: Perdón si falta información o no cumplo con el estilo habitual de la comunidad, pero es la primera vez que hago una consulta ^^. Gracias de antemano.

1voto

kaiba78987 comentado

Lo he solucionado mezclando todo en el mismo proyecto. Aún así, me resulta curioso este problema. Si necesitas mantener las clases JPA como una librería para varios proyectos, tiene que haber una forma de importarla correctamente.

1voto

Peter comentado

Si tienes la respuesta, por favor publicara como una respuesta y seleccionala como correcta :)

Gracias.

1voto

kaiba78987 comentado

Realmente no es la solución, es un apaño. La duda sigue existiendo. Por eso no lo respondí como solución; no sé si habré hecho bien.

1voto

Peter comentado

Si si, entonces déjala abierta a ver si alguien ofrece la respuesta correcta.

2votos

humberto_garcia_caba comentado

¿En qué lugar está el persistence.xml? Quizás no esté en el sitio correcto y por eso no lo carga bien

2votos

kaiba78987 comentado

en un principio lo tenía sólo en el src/META-INF del proyecto JPA. Luego lo metí también en el WebContent/META-INF del proyecto web, por si acaso no lo cogía desde el JAR. Probé también a crear un directorio src/META-INF en el proyecto web y ponerlo ahí, y hasta lo llegué a poner en WebContent/WEB-INF.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta