Проблема с org.hibernate.jpa.HibernatePersistenceProvider - PullRequest
0 голосов
/ 27 декабря 2018

У меня проблема с созданием контекста постоянства с использованием аннотации.В чем проблема?

Я пытался использовать другие версии

import javax.ejb.EJB;
import javax.ejb.Singleton;
import javax.ejb.Stateful;
import javax.ejb.Stateless;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.persistence.*;
import java.util.List;
@Stateful
public class UserService {
@PersistenceContext(unitName = "JPAUNIT", type = PersistenceContextType.EXTENDED)
private EntityManager em;

public boolean saveUsr(User user){
    em.getTransaction().begin();
    try {
        em.persist(user);
        em.getTransaction().commit();
        return true;
    }catch (Exception e){
        System.out.println("User exists");
        return false;
    }
}
//other methods
}

persistence.xml

    <persistence-unit name="JPAUNIT">
                <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>

    <class>classes</class>

    <properties>
        <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/points"/>
        <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
        <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL9Dialect"/>
        <property name="hibernate.connection.username" value="postgres"/>
        <property name="hibernate.connection.password" value="1234"/>
    </properties>

</persistence-unit>

pom.xml

    <packaging>war</packaging>

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>8.0</version>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.2.5</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.3.7.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.2-api</artifactId>
        <version>1.0.0.Beta2</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.3.7.Final</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-servlet</artifactId>
        <version>1.19.4</version>
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-server</artifactId>
        <version>1.8</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet-core</artifactId>
        <version>2.27</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

StackTrace

Исключительная ситуация при подготовке приложения: java.lang.ClassNotFoundException: org.hibernate.jpa.HibernatePersistenceProvider java.lang.ClassNotFoundException: org.hibernate.jpa.HibernatePersistenceProvider на org.glass.ader.WebappClassLoader.loadClass (WebappClassLoader.java:1621) по адресу org.glassfish.web.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1471) по адресу org.glassfish.persistence.jpa.PersistenceUnitLoader.loadPUg:.glassfish.persistence.jpa.PersistenceUnitLoader. (PersistenceUnitLoader.java:107) в org.glassfish.persistence.jpa.JPADeployer $ 1.visitPUD (JPADeployer.java:223) в org.glassfish.persistence.jpa.JPADepnititeDraterate $ $(JPADeployer.java:510) в org.glassfish.persistence.jpa.JPADeployer.createEMFs (JPADeployer.java:230)

Обновлено: Попытка использовать другие версии, как сказал @SteveC, но это не помогло

Добавлена ​​трассировка стека и pom.xml

1 Ответ

0 голосов
/ 27 декабря 2018

Спасибо, @ SteveC

РЕШЕНО Только что создан новый проект с этими зависимостями

persistence.xml тот же

src / main /Java / META-INF / persistence.xml

pom.xml

<packaging>war</packaging>

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>7.0</version>
    </dependency>
    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.2.5</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.3.7.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>5.3.7.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>1.0.1.Final</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.25</version>
    </dependency>
</dependencies>
...