gpt4 book ai didi

java - 持久性 jar 的问题

转载 作者:行者123 更新时间:2023-12-01 05:55:01 28 4
gpt4 key购买 nike

我正在与 JBOss 作斗争,并且遇到了一个似乎很难解决的问题,但事实证明我不能。当我尝试部署一个简单的 Java Web 应用程序时,遇到异常:

org.hibernate.ejb.HibernatePersistence cannot be cast to avax.persistence.spi.PersistenceProvider

我知道这是一个拥有多个 persistence.jar 的问题。所以在我的 pom 中我做了类似的事情:

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>ejb3-persistence</artifactId>
</exclusion>
</dependency>

但是我运气不好。我仍然收到错误。有人可以帮我解决这个任务吗?

阿加塔

最佳答案

您似乎想在应用程序中打包您自己的 Hibernate 版本。这是可能的,但您必须为您的应用程序设置类加载器作用域。来自 ClassLoadingConfiguration :

Isolation with Overriding Server Classes

Use the following constructs to enabled scoped class loading with the deployment classes overriding the server classes.

...

For jboss-web.xml:

<jboss-web>
<class-loading java2ClassLoadingCompliance="false">
<loader-repository>
com.example:archive=unique-archive-name
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</class-loading>
...

换句话说,要么包含所有 Hibernate 库并禁用父类加载器委派,要么全部排除并使用 JBoss 中的库。

另请参阅

关于java - 持久性 jar 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3307513/

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