我使用的相应jar文件如下:
配置是这样的:
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
<prop key="hibernate.cache.use_second_level_cache" >true</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="net.sf.ehcache.configurationResourceName">/ehcache.xml</prop>
我收到这样的错误:
java.lang.NoClassDefFoundError:net / sf / ehcache / CacheException
帮助我解决这个问题。
答案 0 :(得分:6)
您正在使用Ehcache 3(这很好),但正在使用兼容Ehcache 2的区域工厂。
对于符合JCache的Ehcache 3,您应该使用org.hibernate.cache.jcache.JCacheRegionFactory
。
您可以在此处找到完整示例:https://github.com/ehcache/ehcache3-samples/tree/master/fullstack。查看README.md
以查找有趣的文件。
注意:正如路易斯在评论中提到的,你需要Hibernate 5.2才能获得JCache支持。
答案 1 :(得分:-2)
我认为你需要这个神器:
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.10.3</version>
</dependency>
它包含您的应用程序正在寻找的net.sf.ehcache
个包/类。
基于你的hibernate属性:
<prop key="net.sf.ehcache.configurationResourceName">/ehcache.xml</prop>