没有命名为EntityManager的持久性提供程序-尝试从Weblogic控制台进行部署时

问题描述 投票:3回答:1

我为这个错误苦了几天。

当我尝试从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>

位于/ WEB-INF / classes / META-INF中的persistance.xml

[我们有这样的情况:我们有一个测试和准备环境。在测试中,它起作用,在准备中不起作用,在本地中不起作用(从WebLogic控制台)。不幸的是,我看不到测试服务器的配置。但是我希望准备时能有同样的选择。无论如何,请忘记其他环境,首先,我需要从本地成功部署。

请您帮我,我真的不知道我想念什么。阅读每个主题,尝试一切]

java jpa weblogic12c persistence.xml persistence-provider
1个回答
0
投票

看起来像是类路径问题。检查您的weblogic类路径。如果使用eclipselink,则在部署时必须首先加载库。

检查this

将eclipselink添加到范围为[[提供的项目中:]

<dependency> <groupId>org.eclipse.persistence</groupId> <artifactId>eclipselink</artifactId> <version>2.5.0</version> <scope>provided<scope> </dependency>
将相同的依赖项添加到您的weblogic类路径中:

$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>

© www.soinside.com 2019 - 2024. All rights reserved.