Не указан поставщик сохраняемости для EntityManager - при попытке развертывания из консоли weblogic - PullRequest
3 голосов
/ 16 октября 2019

Я несколько дней бьюсь над этой ошибкой.

Когда я пытаюсь выполнить развертывание из ide (IntelliJ-eclipse), оно работает правильно.

Но когда я пытаюсь выполнить развертывание с консоли WebLogic, я получаю эти ошибки;

Error Unable to access the selected application. 
Error Unable to invoke Annotation processoror.
Error Unable to invoke Annotation processoror.

Для получения дополнительной информации я проверил журналы и ошибки из трассировки стека. Похоже, основная ошибка: javax.persistence.PersistenceException: Отсутствует поставщик сохраняемости для EntityManager с именем .

При отладке, выбрасывая из этого кода;Persistence.createEntityManagerFactory("persistanceUnitName");

Классы персистентности берутся из javaee-web-abi-7.0.jar.

В persistence.xml все выглядит отлично.

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="persistanceUnitName"
        transaction-type="JTA">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
        <jta-data-source>dataSource</jta-data-source>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name="eclipselink.target-database" value="Oracle" />
            <property name="eclipselink.logging.parameters" value="true" />
            <property name="eclipselink.logging.logger" value="DefaultLogger" />
            <property name="eclipselink.logging.level" value="WARNING" />
            <property name="eclipselink.refresh" value="true" />
            <property name="eclipselink.query-results-cache" value="false" />
            <!-- <property name="eclipselink.ddl-generation" value="create-or-extend-tables" />-->
        </properties>
    </persistence-unit>
</persistence>

persistance.xml, расположенный в / WEB-INF / classes / META-INF

У нас есть такой случай: у нас есть среда для тестирования и подготовки,В тесте это работает, в подготовительном не работает, в локальном не работает (из консоли WebLogic). К сожалению, я не вижу тестовые конфигурации сервера. Но я ожидаю такие же варианты с приготовлением. В любом случае, забудьте о других средах, во-первых, мне нужно успешно выполнить развертывание из локальной системы.

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

1 Ответ

1 голос
/ 16 октября 2019

Это похоже на проблему с classpath. Проверьте ваш weblogic classpath. Если вы используете eclipselink, библиотека должна быть загружена первой при развертывании.

Проверьте это .

Добавить eclipselink в ваш проект с областью действия при условии :

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>eclipselink</artifactId>
    <version>2.5.0</version>
    <scope>provided<scope>
</dependency>

добавить такую ​​же зависимость в ваш путь к weblogic classpath:

$WEBLOGIC_HOME/user_projects/domains/base_domain/lib

Затем добавитьниже к вашему weblogic.xml, чтобы использовать библиотеку eclipselink.

<wls:container-descriptor>
    <wls:prefer-application-packages>
        <wls:package-name>org.eclipse.persistence.*</wls:package-name>
    </wls:prefer-application-packages>
</wls:container-descriptor>
...