1

We are trying to implement Hibernate 2nd Level Cache through Hazelcast. We tried for Hibernate Versions 4.3.11 using the Hazelcast Plugin Version as provided in the githib link https://github.com/hazelcast/hazelcast-hibernate/blob/master/README.md.

When we start the application, we are facing the exception -

java.lang.NoClassDefFoundError: org/hibernate/cache/QueryResultsRegion
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:242)
    at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:125)
    at org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:87)
    at org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:46)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:83)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:223)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:197)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:295)
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2442)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2438)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1855)
    at X.X.X.X.HibernateSessionFactory.<clinit>(HibernateSessionFactory.java:79)
    at X,.X.X.X.X.HibernatePlugIn.init(HibernatePlugIn.java:119)
    at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:869)
    at org.apache.struts.action.ActionServlet.init(ActionServlet.java:336)
    at javax.servlet.GenericServlet.init(GenericServlet.java:158)
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1282)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1195)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1085)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5349)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5641)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1571)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1561)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.hibernate.cache.QueryResultsRegion
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1891)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734)
    ... 31 more

We see that this class has been removed in this Hibernate version. Can anyone please let us know the actual versions this Hazelcast plugin supports? Also, we did want to move on the latest version and hence downloaded the Hibernate 5.2.3 version along with Hazelcast version https://github.com/hazelcast/hazelcast-hibernate5 but this also results in the same exception.

The hibernate.cfg.xml settings for cache are as follows-

 <property name="hibernate.cache.use_second_level_cache">true</property> 
 <property name="hibernate.cache.use_query_cache">true</property>
  <property name="hibernate.cache.use_minimal_puts">true</property> 
 <property name="hibernate.cache.region.factory_class">com.hazelcast.hibernate.HazelcastLocalCacheRegionFactory</property>
 <property name="hibernate.cache.hazelcast.shutdown_on_session_factory_close">false</property>

Can anyone please help us out on the correct versions?

Thanks, Aravind

Aravind
  • 311
  • 3
  • 14

1 Answers1

0

I downloaded the source for 5.2 Hazelcasst Plugin again and rebuilt the source which seems to have solved the problem. Not sure as to the problem as the other Hazelcast jars were essentially the same. Final jars used -

hazelcast-3.7.1.jar, hazelcast-hibernate52-1.1.1-SNAPSHOT.jar (rebuilt), hibernate-core-5.2.3.Final.jar

Aravind
  • 311
  • 3
  • 14