【问题标题】:ehcache hibernate 4ehcache休眠4
【发布时间】:2012-12-14 16:14:23
【问题描述】:

在我的应用程序中,我使用 hibernate-core-4.1.8 jar 并希望将 ehCache 作为二级缓存。 我目前使用的jar是ehcache-core-2.5.0。我把它放在我的 WebContetn/WEB-INF/lib 文件夹中,也把它放在类路径中。

我的 hibernate.cfg.xml 看起来像这样:

<hibernate-configuration>
    <session-factory>   
    ....    
        <property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
        <property name="hibernate.cache.use_second_level_cache">true</property>
        <property name="hibernate.cache.use_query_cache">true</property>
    </session-factory>
</hibernate-configuration>

位于 JavaResources/src 文件夹中的 ehcache.xml:

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true"
        monitoring="autodetect" dynamicConfig="true">

    <defaultCache
                maxElementsInMemory="100000"
                eternal="false"
                timeToIdleSeconds="1000"
                timeToLiveSeconds="1000"
                overflowToDisk="false"
                />
</ehcache>

运行我的应用程序时,找不到类 org.hibernate.cache.ehcache.EhCacheRegionFactory:

java.lang.ClassNotFoundException: Could not load requested class : org.hibernate.cache.ehcache.EhCacheRegionFactory
    at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl$1.findClass(ClassLoaderServiceImpl.java:99)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.hibernate.service.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:138)
    at org.hibernate.cfg.SettingsFactory.createRegionFactory(SettingsFactory.java:444)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:275)
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2283)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2279)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1748)
    at creator.controllers.MyFactory.<clinit>(MyFactory.java:18)
    at creator.controllers.SchoolDAO.getList(SchoolDAO.java:98)
    .....

【问题讨论】:

    标签: java hibernate ehcache


    【解决方案1】:

    你需要通过downloading it 包含hibernate-ehcache.jar 或者你使用maven 把它放在你的依赖项中,像这样

    <dependency>
    <artifactId>hibernate-ehcache</artifactId>
    <groupId>org.hibernate</groupId>
    <version>4.0.0.CR6</version>
    </dependency>
    

    【讨论】:

    • 在将您的 jar 以及似乎需要(来自slf4j.org/download.html)的 slf4-api-1.7.2 添加到项目后工作正常 :) 谢谢!
    【解决方案2】:

    你需要检查你的hibernate version并且你必须使用相同版本的hibernate-ehcache

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 2011-07-13
      • 2017-08-12
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 2015-04-24
      相关资源
      最近更新 更多