我正在尝试将我的应用程序连接到Terracotta缓存群集,但我在使用我已设置的配置启动应用程序时遇到问题。我在控制台中没有收到任何错误,但是如果我使用调试它会在尝试创建CacheManager时失败。
我得到的错误就是这个。引起:java.lang.ClassNotFoundException:net.sf.ehcache.config.TerracottaConfigConfiguration
我使用的是Hibernate 4.x,Spring 4.x,Terracotta BigMemory Max 4.x。
您能否告诉我我做错了什么或哪里可以找到最新文档?
这些是我的配置:
Hibernate属性:
<prop key="hibernate.cache.use_structured_entries">true</prop>
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="net.sf.ehcache.configurationResourceName">ehcache-hibernate.xml</prop>
的Ehcache-hibernate.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache name="ehcache-hibernate"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="ehcache.xsd">
<cache name="User" maxElementsInMemory="1000"
maxElementsOnDisk="10000" eternal="false" timeToIdleSeconds="3600"
timeToLiveSeconds="1200" memoryStoreEvictionPolicy="LFU">
<terracotta />
</cache>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="1200"
timeToLiveSeconds="1200">
<!--<terracotta />-->
</defaultCache>
<terracottaConfig url="localhost:9510" />
Maven相关依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.3.10.Final</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-terracotta</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.terracotta</groupId>
<artifactId>terracotta-toolkit-1.6-runtime-ee</artifactId>
<version>5.8.0</version>
</dependency>
<dependency>
<groupId>org.terracotta</groupId>
<artifactId>terracotta-toolkit-runtime-ee</artifactId>
<version>4.1.1</version>
</dependency>
我在Windows上,我已经启动了Terracotta服务器和管理控制台。服务器显示为活动状态,但没有客户端连接到它。
我尝试使用类似于我自己的环境找到有效配置的示例,但无法找到。
谢谢!
答案 0 :(得分:1)
您的类路径中缺少ehcache-core
。添加以下依赖项以使其工作:
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.1.1</version>
</dependency>
答案 1 :(得分:0)
我担心你不会这样做。我不知道用Hibernate 4.x支持Terracotta 4.1的代码库(甚至非官方代码)。很可能我的记忆在这里让我失望,但是......
您可以尝试的最好的方法是使用Ehcache嵌入式Hibernate 2LC提供程序类(在net.sf.ehcache
包内),但我认为这些不支持Hibernate 4.x SPI。