簡體   English   中英

如何將Terracotta ehcache與hibernate集成

[英]How to integrate Terracotta ehcache with hibernate

我正在嘗試將我的應用程序連接到Terracotta緩存集群,但無法使用已設置的配置來啟動我的應用程序。 我在控制台中沒有收到任何錯誤,但是如果我進行調試,則在嘗試創建CacheManager時它將失敗。

我得到的錯誤是這個。 引起原因:java.lang.ClassNotFoundException:net.sf.ehcache.config.TerracottaConfigConfiguration

我正在使用Hibernate 4.x,Spring 4.x,Terracotta BigMemory Max4.x。

您能否告訴我我做錯了什么,或者在哪里可以找到最新文檔?

這些是我的配置:

休眠屬性:

<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服務器和管理控制台。 服務器顯示為活動服務器,但沒有客戶端連接到該服務器。

我已經嘗試使用類似於我自己的環境來找到有效配置的示例,但找不到任何環境。

謝謝!

您從類路徑中缺少ehcache-core 添加以下依賴項以使其起作用:

<dependency>
  <groupId>net.sf.ehcache</groupId>
  <artifactId>ehcache-core</artifactId>
  <version>2.1.1</version>
</dependency>

我擔心您將無法正常工作。 我不知道使用Hibernate 4.x支持Terracotta 4.1的代碼庫(甚至是非官方的)。 很可能是我的記憶使我在這里失敗,但是...

您可以嘗試的最好方法是改用Ehcache嵌入式Hibernate 2LC提供程序類(在net.sf.ehcache包內),但是我認為它們不支持Hibernate 4.x SPI。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM