0

プロジェクトをglassfish2.2.1からJBoss eap-6.0に移行しました。Jboss に移行した後、以下の問題が発生します

17:38:45,581 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 62) MSC000001: サービス jboss.persistenceunit."unbranded.ear#entityManager" の開始に失敗しました: org.jboss.msc.service .StartException サービス jboss.persistenceunit."unbranded.ear#entityManager": javax.persistence.PersistenceException: [PersistenceUnit: entityManager] org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java で EntityManagerFactory を構築できません:100) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) で [rt.jar:1.6.0_23] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) で[rt.jar:1.6.0_23] at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_23] at org.jboss.threads.JBossThread.run(JBossThread.ジャワ:122)

原因: javax.persistence.PersistenceException: [PersistenceUnit: entityManager] org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915) で org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java: 890) org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:197) で org.jboss.as.jpa.service で org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74) で.PersistenceUnitServiceImpl.access$500(PersistenceUnitServiceImpl.java:57) at org.jboss.as.jpa.service.PersistenceUnitServiceImpl$1.run(PersistenceUnitServiceImpl.java:96) ... 4 以上

原因: org.hibernate.cache.CacheException: org.hibernate.cache.infinispan.entity.EntityRegionImpl.buildAccessStrategy(EntityRegionImpl.java:33) で org.hibernate.internal.SessionFactoryImplでサポートされていないアクセス タイプ [nonstrict-read-write] (SessionFactoryImpl.java:345) org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1746) で org.hibernate.ejb.EntityManagerFactoryImpl.(EntityManagerFactoryImpl.java:94) で org.hibernate.ejb.Ejb3Configuration. buildEntityManagerFactory(Ejb3Configuration.java:905) ... 9 もっと見る

太字のログを確認すると、infinispan キャッシュが使用されています。そのため、サポートされていないアクセス タイプ [nonstrict-read-write] が発生しています。infinispan はこれをサポートしていないためです。

しかし、私のpersistence.xmlはehcacheを設定しました。以下は私のpersistence.xmlです

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com /xml/ns/persistence/persistence _1_0.xsd"
version="1.0"> org.hibernate.ejb.HibernatePersistence jdbc/ejb/ブランドのないcasinomodule.core.audit.AuditTrail

     <!-- <property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.CMTTransactionFactory"/> -->
     <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.SunONETransactionManagerLookup"/>
     <property name="hibernate.cache.use_query_cache" value="true"/>
     <property name="hibernate.query.jpaql_strict_compliance" value="false"/>
     <property name="hibernate.session_factory_name" value="HibernateSession"/>
     <property name="hibernate.bytecode.use_reflection_optimizer" value="true"/>


     <property name="hibernate.cache.provider_class" value="net.sf.ehcache.hibernate.SingletonEhCacheProvider"/>
     <property name="hibernate.cache.use_second_level_cache" value="true"/>

  </properties>    </persistence-unit> </persistence>

jboss が Ehcache の代わりに infinispan を使用する理由がわかりません。

ありがとう

4

1 に答える 1

0

わかりました、私は問題を理解します。

これは、古いMavenの依存関係とpersistence.xmlファイルに追加したプロパティが原因です。

以下はMavenの依存関係です。

 <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-ehcache</artifactId>
        <version>4.1.9.Final</version>
      </dependency>

以下は、persistence.xmlファイルに追加された新しいプロパティです。

<property name="hibernate.cache.region.factory_class" value="net.sf.ehcache.hibernate.EhCacheRegionFactory"/>

これは、JBosseap-6.0を使用しているために発生しています。これもJPAプロバイダーとしてHibernateを使用しており、Hibernate4.1.9.Finalバージョンを使用しています。そして以前、私のMavenで、休止状態の依存関係を3.4.6として指定していました。

于 2013-03-04T07:41:59.377 に答える