【问题标题】:No persistence provider found with JBoss AS 7在 JBoss AS 7 中找不到持久性提供程序
【发布时间】:2012-04-09 21:18:14
【问题描述】:

我刚刚从 Tomcat 迁移到 JBoss AS 7。 所以,我在 JBoss 中配置了 Mysql 数据源(添加 module.xml 和关联的 Jar,将驱动程序块添加到 Standalone.xml 并通过 JBoss 接口配置数据源。

部署时没有错误但无法获取 entityManager(JPA 与 Hibernate 在后台)。

确实,当这段代码执行时:

Persistence.createEntityManagerFactory("RoomManagement");

我收到此错误:

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

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

我的 persistence.xml 如下所示:

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

我是否犯了错误或忘记指定某些内容?

【问题讨论】:

    标签: java hibernate jpa jboss


    【解决方案1】:

    WEB-INF/lib 中删除休眠 jar。 JBoss 已经捆绑了它,所以如果你将它放在类路径中,它可能会混淆类加载器。

    【讨论】:

    • 非常感谢!!正是这样:)
    猜你喜欢
    • 2012-06-25
    • 2013-04-07
    • 2017-05-23
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 2013-06-20
    • 1970-01-01
    相关资源
    最近更新 更多