gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:43:25 24 4
gpt4 key购买 nike

我为这个错误苦苦挣扎了几天。

当我尝试从 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: No Persistence provider for EntityManager named

在调试中,从此代码抛出; 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 控制台)。不幸的是,我看不到测试服务器配置。但我希望与 prep 有相同的选择。无论如何忘记其他环境,首先我需要从本地成功部署。

你能帮帮我吗,我真的不知道我想念什么。阅读每个主题,尝试一切

最佳答案

这看起来像是一个类路径问题。检查您的 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>

关于java - 没有为 EntityManager 命名的持久性提供程序 - 当尝试从 weblogic 控制台部署时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58408138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com