我已将我的项目从glassfish2.2.1迁移到JBoss eap-6.0。 迁移到JBoss后,我得到了下面的问题为什么jboss选择infinispan缓存而不是Ehcache
17:38:45581 ERROR [org.jboss.msc.service.fail(Server服务线程池 - 62)MSC000001:无法启动服务 jboss.persistenceunit “unbranded.ear#EntityManager的”。 org.jboss.msc.service.StartException服务 jboss.persistenceunit “unbranded.ear#EntityManager的”。 javax.persistence.PersistenceException:[PersistenceUnit: 的EntityManager ]无法构建EntityManagerFactory org.jboss.as.jpa.service.PersistenceUnitServiceImpl $ 1.run(PersistenceUnitServiceImpl.java:100) 在 java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_23] at 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.java :122)
引起:javax.persistence.PersistenceException:[PersistenceUnit: 的EntityManager] 在无法在 org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:915构建的EntityManagerFactory) org.hiberna te.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890) 在 org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:74) 在 org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory( PersistenceUnitServiceImpl.java:197) 在 org.jboss.as.jpa.service.PersistenceUnitServiceImpl.access $ 500(PersistenceUnitServiceImpl.java:57) 在 org.jboss.as.jpa.service.PersistenceUnitServiceImpl $ 1.run(PersistenceUnitServiceImpl。 java:96) ... 4更多
造成者:org.hibernate.ca che.CacheException:不支持的接入类型 [非严格读写]在 org.hibernate.cache.infinispan.entity.EntityRegionImpl.buildAccessStrategy(EntityRegionImpl.java:33) 在 org.hibernate.internal.SessionFactoryImpl (SessionFactoryImpl.java:345) 在 org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1746) 在 org.hibernate.ejb.EntityManagerFactoryImpl。(EntityManagerFactoryImpl.java:94) 在 有机hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905) ... 9更多
如果您以粗体检查日志,它将采用infinispan缓存,这就是为什么它会导致问题Unsupported access type [nonstrict-read-write],因为infinispan不支持这个问题。
但是我的persistence.xml我配置了ehcache。下面是我的persistence.xml
xmlns:xsi =“http://www.w3。组织/ 2001/XMLSchema的实例”
的xsi:的schemaLocation = “http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence _1_0.xsd”
版本= “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采用infinispan而不是Ehcache。
谢谢