【问题标题】:Not able to configure EhCache for hibernate 4.1.1 as it throws " net/sf/ehcache/CacheException"无法为休眠 4.1.1 配置 EhCache,因为它抛出“net/sf/ehcache/CacheException”
【发布时间】:2014-01-26 07:30:00
【问题描述】:
<!--Cache Provider-->
     <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property> 
     <property name="hibernate.cache.use_second_level_cache">true</property> 
    <!--The Query-level Cache-->
    <property name="hibernate.cache.use_query_cache">true</property>

这些是我在 hibernate.cfg.xml 中定义的属性。当我在 hibernate 3 版本中使用类似的方式时,它可以工作,但在 4.1.1 hibernate 中它会抛出“net/sf/ehcache/CacheException”。我也包含了 hibernate-ehcache-4.1.1 jar。我什至尝试添加 ehcache 2.8 jar。仍然每次添加都会添加到错误列表中。请帮帮我。

堆栈跟踪如下...

java.lang.NoClassDefFoundError: net/sf/ehcache/CacheException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.getConstructor(Class.java:1657)
at org.hibernate.cfg.SettingsFactory.createRegionFactory(SettingsFactory.java:386)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:251)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2273)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2269)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1738)
at com.gau.dbaccess.HibernateUtilities.<clinit>(HibernateUtilities.java:31)
at com.gau.dbaccess.ComponentsDetailsAccess.resetOnlinePsdLockAfterServerStart(ComponentsDetailsAccess.java:3503)
at com.gau.controller.ApplicationContextController.contextInitialized(ApplicationContextController.java:132)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4791)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5285)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:657)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1637)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:619)

引起:java.lang.ClassNotFoundException:net.sf.ehcache.CacheException 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) ... 26 更多 2014 年 1 月 8 日下午 3:40:07 org.apache.catalina.core.StandardContext startInternal 严重:错误 listenerStart 2014 年 1 月 8 日下午 3:40:07 org.apache.catalina.core.StandardContext startInternal

【问题讨论】:

  • 请发布堆栈跟踪。
  • 在您部署的应用程序中的WEB-INF/lib 中,您能看到ehcache-core-2.4.3.jar 吗?

标签: java database hibernate caching ehcache


【解决方案1】:

您可能正在混合使用 hibernate3 和 hibernate4 的东西。
删除所有旧的hibernate3代码和类;如果您使用的是spring,请使用org.springframework.orm.hibernate4.LocalSessionFactoryBean(检查包,必须是hibernate4的)

【讨论】:

  • 因为您怀疑缓存在休眠 3 中完美运行,因为我尝试了一个示例应用程序。但我们早就迁移到了休眠 4.1。所以我认为没有混淆。
猜你喜欢
  • 2017-05-11
  • 1970-01-01
  • 2015-10-21
  • 2018-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
相关资源
最近更新 更多