プロジェクトを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 を使用する理由がわかりません。
ありがとう