Setting up Infinispan as Hibernate Level 2 cache problem
lindsaybraine Dec 23, 2011 2:20 PMHopeing someone can help - and I am not sure I shoudl not be posting this on the Infinispan discussion group....
I am using JBoss 7.1 CR1.
I want to use Inifinispan as the second level cache.
I am using JPA (backed by Hibernate)
I followed the execellant article at : https://docs.jboss.org/author/display/ISPN/Using+Infinispan+as+JPA-Hibernate+Second+Level+Cache+Provider
I have declared in my EAR's persistence.xml file the following :
<property name="hibernate.cache.use_second_level_cache" value="true" />
<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.infinispan.JndiInfinispanRegionFactory" />
<property name="hibernate.cache.infinispan.cachemanager" value="java:CacheManager/entity" />
<property name="hibernate.cache.use_query_cache" value="true" />
<property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.CMTTransactionFactory"/>
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
but on starting and ny EAR being deployed I get this error :
ERROR (MSC service thread 1-1) 2011-12-23 18:59:37,893 [org.jboss.msc.service.fail] ServiceLogger_$logger MSC00001: Failed to start service jboss.persistenceuni
t."apollo.ear#ApolloPU": org.jboss.msc.service.StartException in service jboss.persistenceunit."apollo.ear#ApolloPU": Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1780) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [:1.6.0_24]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [:1.6.0_24]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_24]
Caused by: java.lang.NoClassDefFoundError: javax/naming/NamingException
at java.lang.Class.getDeclaredConstructors0(Native Method) [:1.6.0_24]
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) [:1.6.0_24]
at java.lang.Class.getConstructor0(Class.java:2699) [:1.6.0_24]
at java.lang.Class.getConstructor(Class.java:1657) [:1.6.0_24]
at org.hibernate.cfg.SettingsFactory.createRegionFactory(SettingsFactory.java:383)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:248)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2270)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2266)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1735)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:76)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.createContainerEntityManagerFactory(PersistenceUnitServiceImpl.java:149)
at org.jboss.as.jpa.service.PersistenceUnitServiceImpl.start(PersistenceUnitServiceImpl.java:79)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
... 3 more
Caused by: java.lang.ClassNotFoundException: javax.naming.NamingException from [Module "org.hibernate.infinispan:main" from local module loader @16e1fb1 (roots:
D:\dpa-platform\services\modules)]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
... 20 more
This all looked vaguely classloader / module visibility like - so I added into the EAR manifest.mf file the two highlighted entries :
Dependencies: org.apache.log4j, org.slf4j, org.hibernate, org.hibernate.infinispan
But no joy. The stack trace seems to suggest that it is when loading up the regionfactory that the class not found error occurs (and I have checked - the decalred class is there in the JAR file in the org.hibernate.infinispan module).
SO, what am I missing !!!!