当前位置: 首页 > 知识库问答 >
问题:

在持久性中重载提供程序。xml导致ClassNotFoundException

袁波
2023-03-14

我试图在persistence.xml中使用自定义提供程序(实际上,只是在Hibernate提供程序前面创建一个薄薄的外观,以便捕获审计数据)。

我改变了坚持。xml的外观(基于此处类似的stackoverflow帖子)

文件的相关部分现在看起来像

<persistence-unit name="oauth2server-ds">
  <!-- <provider>org.hibernate.ejb.HibernatePersistence</provider> -->
  <provider>psu.edu.javaee.audit.producer.MyHibernatePersistenceProvider</provider>
  <jta-data-source>java:jboss/datasources/oauth2server-ds</jta-data-source>

我已经验证了类psu。埃杜。贾瓦伊。审计制作人MyHibernatePersistenceProvider位于中。我正在部署一场战争,但我仍然有一个

Caused by: javax.persistence.PersistenceException: JBAS011466: PersistenceProvider 'psu.edu.javaee.audit.producer.MyHibernatePersistenceProvider' not found

要使这个类在类路径上可见,我还需要做些什么?如果这有什么关系的话,我将参加wildfly-8.2.0-Final。

共有1个答案

窦志新
2023-03-14

答案是在META-INF目录中添加一个服务目录,并在服务目录中添加一个名为javax的文件。坚持不懈spi。包含替换持久性提供程序的完全限定名称的PersistenceProvider。感谢Alex H.的帮助。

所以,META-INF/services/javax。坚持不懈spi。具有替换提供程序的完全限定名称的PersistenceProvider。

 类似资料:
  • 我正在尝试为drools会话配置JPA持久性(代码来自drools文档) > 我在pom.xml中添加了drools-persistence-jpa、Bitronix事务管理器和com.h2database依赖项 我在“src/META-INF”中的Eclipse项目中创建了一个META-INF文件夹作为Source-Folder。 [...]EntityManagerFactory emf=pe

  • 我是EE的新手,我正在Weblogic 12c上开发一个应用程序。数据源在管理控制台中测试良好。当EJB试图访问它时,它会抛出这个ClassNotFoundException。我已经做了三个小时的研究,我知道问题是一些jar不在服务器的类路径中,但我不知道是哪一个!!!我正在使用默认的Eclipse Link持久性提供程序并使用MySQL驱动程序。这两个都是用Weblogic打包的(根据Oracl

  • 我试图在Eclipse中测试我的hibernate maven应用程序,当我运行获取enttity类名称的方法时,我得到了以下异常: 这是persistence.xml: 这是使用以下方法的类: 波姆。xml: 我尝试更改持久性的版本号、更改xmlns、提供程序的名称,但仍然是例外。

  • 问题内容: Hibernate 5.1.1和5.2.2之间发生了什么变化?如果我使用5.2.2,则会收到错误消息“名为pu的EntityManager没有持久性提供程序”。完全相同的配置适用于5.1.1。我应该如何更改代码以使5.2.2正常工作? pom.xml src / main / resources / META-INF中的persistence.xml 创建EntityManager 问

  • 我正在尝试使用JPA和EclipseLink来持久化元素。所以我创建了一个类来持久化 等等。我创建了一个类来“使用”: 然后,我有以下persistence.xml: 但是,即使我改变了属性,我也有同样的错误: 线程"main"中的异常javax.persistence.PeristenceException:没有名为MyPU的EntityManager的持久性提供程序(当调用工厂=Persist

  • 问题内容: 我在目录下使用相同的名字。然后,我用以下代码调用它: 但是,我收到以下错误消息: 这是: 它应该在类路径中。但是,我得到了上面的错误。 问题答案: 在之后,定义持久性提供程序名称: