3

Tomcat から JBoss AS 7 に移行したところです。そのため、JBoss で Mysql データソースを構成しました (関連付けられた Jar に module.xml を追加し、ドライバー ブロックをstandalone.xml に追加し、JBoss インターフェイスを介してデータソースを構成します。

デプロイ時にエラーは発生しませんが、entityManager (バックグラウンドで Hibernate を使用する JPA) を取得できません。

実際、このコードが実行されると:

Persistence.createEntityManagerFactory("RoomManagement");

このエラーが発生します:

javax.persistence.PersistenceException: RoomManagement という名前の EntityManager の永続化プロバイダがありません

私のpersistence.xmlがWEB-INF/classes/META-INFディレクトリで戦争に入ることがよく確認されたので、非常に奇妙です。

私の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> 

間違いを犯したか、何かを指定するのを忘れましたか?

4

1 に答える 1

6

から休止状態のjarを削除しWEB-INF/libます。JBossにはそれがバンドルされているため、クラスパスにある場合、クラスローダーを混乱させる可能性があります。

于 2012-04-09T22:02:01.687 に答える