Отсутствует EntityManager при сборке войны и развертывании на wildfly - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь создать новые данные, которые предоставляются в запросе json post с использованием jersey в базе данных (hibernate).Поэтому я создал новый динамический веб-проект и изменил его на maven.

В тестовом тестовом классе я мог создать нового пользователя и успешно сохранить его.Также хорошо подходит пост-запрос без какой-либо логики, который просто возвращает ok.Но если я опубликую развертывание и попытаюсь сохранить данные, я получаю сообщение об ошибке

javax.servlet.ServletException: javax.persistence.PersistenceException: Нет поставщика сохраняемости для EntityManager с именем shareiffUnit.

У меня такое ощущение, что некоторые настройки необходимо изменить или переместить.

UserAPI

@Path("/message")
public class UserAPI
{

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response createUser(String inputStream) {
        /*
         * gson to map json to user class
         */
        Gson gson = new Gson();
        User newUser = new User();
        newUser = gson.fromJson(inputStream, User.class);

        /*
         * trying to persist
         */
        GenericDao dao = new GenericDao(User.class);
        dao.create(newUser);

        return Response.ok().build();
    }
}

GenericDAO

public class GenericDao<E> implements IGenericDao<E> {
    private Class<E> entityClass;
    private final EntityManagerFactory enityManagerFactory = Persistence.createEntityManagerFactory("shareiffUnit");
    private EntityManager entityManager = null;

    private EntityManager getEntityManager() {
        if(entityManager == null) {
            return enityManagerFactory.createEntityManager();
        }

        return entityManager;
    }

    public GenericDao(Class<E> thisClass) {
        this.entityClass = (Class<E>) thisClass;
    }

    public void setEntity(Class<E> entityClass) {
        this.entityClass = entityClass;
    }

    public void create(E entity) {
        getEntityManager().persist(entity);
    }

    public E read(Integer id) {
        return getEntityManager().find(this.entityClass, id);
    }

    public void update(E entity) {
        getEntityManager().refresh(entity);
    }

    public void delete(E entity) {
        getEntityManager().remove(entity);
    }
}

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="shareiffUnit">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.connection.url"       value="jdbc:mysql://localhost:3306/docsheriffdb" />
            <property name="connection.driver_class"        value="com.mysql.jdbc.Driver" />
            <property name="hibernate.dialect"              value="org.hibernate.dialect.MySQL5Dialect" />

            <property name="hibernate.connection.username"  value="root" />
            <property name="hibernate.connection.password"  value="" />

            <property name="hibernate.show_sql"             value="false" />
            <property name="hibernate.format_sql"           value="true" />

            <property name="hibernate.hbm2ddl.auto"         value="update" />

        </properties>
    </persistence-unit>
</persistence>

enter image description here

Есть ли здесь какая-либо конфигурация, которую я пропускаю?В файле войны (sheriff-0.0.1.war \ WEB-INF \ classes \ META-INF) есть файл persistence.xml.

Есть подсказки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...