在JBoss AS 7中找不到持久性提供程序 [英] No persistence provider found with JBoss AS 7

查看:76
本文介绍了在JBoss AS 7中找不到持久性提供程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚从Tomcat迁移到JBoss AS 7. 因此,我在JBoss中配置了Mysql数据源(添加带有关联Jar的module.xml,将驱动程序bloc添加到standalone.xml中,并通过JBoss接口配置数据源.

I've just migrated from Tomcat to JBoss AS 7. So, I configured Mysql datasource in JBoss (adding module.xml with associated Jar, adding driver bloc into standalone.xml and configuring datasource through JBoss interface.

部署时没有错误,但无法获得EntityManager(JPA和Hibernate在后台运行).

No errors when deploying but impossible to get an entityManager (JPA with Hibernate in background).

实际上,当执行此代码时:

Indeed, when this code is executed:

Persistence.createEntityManagerFactory("RoomManagement");

我收到此错误:

javax.persistence.PersistenceException:没有针对以下对象的持久性提供程序 EntityManager命名为RoomManagement javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)

javax.persistence.PersistenceException: No Persistence provider for EntityManager named RoomManagement javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69) javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)

非常奇怪,因为我很好地验证了我的persistence.xml确实发生在WEB-INF/classes/META-INF目录中的战争中.

Very strange because I well verified that my persistence.xml does take place into War at WEB-INF/classes/META-INF directory.

我的persistence.xml如下所示:

My persistence.xml looks like as follow :

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">

    <persistence-unit name="RoomManagement" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:jboss/datasources/MySqlDS</jta-data-source>
        <class>com.parisdescartes.roommanagement.domain.entities.Address</class>
        <class>com.parisdescartes.roommanagement.domain.entities.Building</class>
        <class>com.parisdescartes.roommanagement.domain.entities.Civility</class>
        <class>com.parisdescartes.roommanagement.domain.entities.EventType</class>
        <class>com.parisdescartes.roommanagement.domain.entities.Job</class>
        <class>com.parisdescartes.roommanagement.domain.entities.Reservation</class>
        <class>com.parisdescartes.roommanagement.domain.entities.Room</class>
        <class>com.parisdescartes.roommanagement.domain.entities.RoomType</class>
        <class>com.parisdescartes.roommanagement.domain.entities.Tool</class>
        <class>com.parisdescartes.roommanagement.domain.entities.User</class>
        <class>com.parisdescartes.roommanagement.domain.entities.UserDetail</class>
        <class>com.parisdescartes.roommanagement.domain.entities.Schedule</class>
        <properties>
            <property name="hibernate.connection.autocommit" value="true" />
            <property name="hibernate.archive.autodetection" value="class"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hbm2ddl.auto" value="update"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
        </properties>
    </persistence-unit>
</persistence> 

我犯了一个错误或忘记了指定一些内容吗?

Did I make a mistake or forgot to specify something ?

推荐答案

WEB-INF/lib删除休眠jar. JBoss已捆绑了该捆绑包,因此,如果将其放在类路径中,则可能会使类加载器感到困惑.

Remove the hibernate jar from WEB-INF/lib. JBoss has that bundled, so if you have it on the classpath it probably confuses the classloader.

这篇关于在JBoss AS 7中找不到持久性提供程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆