当前位置: 首页 > 知识库问答 >
问题:

集成terracotta和grails

燕英逸
2023-03-14

创建空grails项目

圣杯创建应用程序 foo

修改了<code>BuildConfig。groovy,未注释

inherits("global") {  
  // uncomment to disable ehcache                                                                                                                                                                                                        
  excludes 'ehcache'                                                                                                                                                                                                                       
}  

所以现在<code>ehcache<code>被排除。

将这5个JAR从<code>terracotta

ehcache-core-ee-2.6.2.jar
ehcache-terracotta-ee-2.6.2.jar
slf4j-api-1.6.1.jar
slf4j-jdk14-1.6.1.jar
terracotta-toolkit-1.6-runtime-ee-5.2.0.jar

grails-app/conf/ 目录中创建了 ehcache.xml

<ehcache>

  <terracottaConfig url="vm4:9510"/>

   <defaultCache
       maxElementsInMemory="50"
       eternal="false"
       timeToIdleSeconds="20"
       timeToLiveSeconds="20"
       overflowToDisk="false"
       diskPersistent="false"
       memoryStoreEvictionPolicy="LRU">

    <terracotta clustered="true" valueMode="serialization"/>
  </defaultCache>

</ehcache>

通过圣杯运行应用程序运行项目并得到此异常:

Message: Error creating bean with name 'transactionManagerPostProcessor': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'transactionManager': 
Cannot resolve reference to bean 'sessionFactory' while setting bean property 'sessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'sessionFactory': Invocation of init method failed; nested exception is org.hibernate.cache.CacheException: 
net.sf.ehcache.CacheException: Could not create ClusteredInstanceFactory due to missing class. Please verify that terracotta-toolkit is in your classpath.

共有1个答案

明财
2023-03-14

foo/lib目录中删除所有JAR,并在BuildConfig.groovy中插入一些依赖项:

    repositories {
        .....
        mavenRepo "http://www.terracotta.org/download/reflector/releases"
    }
    dependencies {
        runtime 'net.sf.ehcache:ehcache-core:2.6.2'
        runtime 'net.sf.ehcache:ehcache-terracotta:2.6.2'
        runtime 'org.terracotta:terracotta-toolkit-1.6-runtime:5.2.0'
    }

这将启用从repo和类路径设置中自动下载其他必要的jar。

而且,如果您像我一样设置开源terracotta服务器,企业版foo/lib/ehcache-terracotta-ee-2.6.2.jar将导致错误:

错误-企业客户端无法连接到开源服务器,连接被拒绝。

关键部分:

使用grails-noreload run-app而不是grails run-app运行应用程序以绕过重新加载代理。然后分布式缓存应用程序应该可以工作。

p.s. 将应用部署到生产环境不需要额外的工作。

 类似资料:
  • 我正在尝试将圣杯2.1.1与兵马俑和Eccache集成,但我没有得到任何好的结果。 任何人都可以给我一些建议来配置它吗?我有点困惑。

  • 一个JVM级的开源群集框架,提供:HTTP Session复制,分布式缓存,POJO群集,跨越群集的JVM来实现分布式应用程序协调(采用代码注入的方式,所以你不需要修改任何)。

  • 我有一个运行Hibernate4.1.7的应用程序,并且正在使用ehcache作为2级缓存。我知道从冬眠4开始,我需要使用与冬眠捆绑在一起的ehcache罐子,但这些罐子已经很老了。 当前最新版本的ehcache是2.6.3,但hibernate 4.1.7附带的版本是2.4.3。问题是hibernate没有与EhcacheTerracotta jar捆绑在一起,我的Terracott服务器也与E

  • 问题内容: 现在,开发iOS应用程序的新语言已变得 迅捷 。 我们如何与 AFNetworking 集成或使用 NSURLSession 将是一个更好的选择? 请帮帮我.. 问题答案: 您必须将AFNetworking添加到您的swift项目 在构建设置->定义模块中设置为是 在构建设置-> Swift编译器-> Objective-C桥接文件中,例如,设置桥接文件’ProjectName-Bri

  • 问题内容: 我想捕获我在jsp中构建的responseXML。我该怎么办。之后,我将其转换为html。我知道这很烦人,我们可以使用框架或类似jquery的库来实现,但我可以用ajax来实现。由于我必须使用JSON SERVICE,因此我在使用jquery和jsp \ servlet时也遇到了问题。为什么在我看来是如此复杂。 问题答案: 不需要那么复杂。您可能只需要一个人调整所有技术即可。JSP,S

  • 主要内容:步骤1 - 打开Eclipse Marketplace,步骤2 - 安装Buildship插件,步骤3 - 验证Gradle插件安装情况,步骤4 - 验证目录结构本章将介绍了集成。以下是将插件添加到的步骤。 步骤1 - 打开Eclipse Marketplace 打开在系统中安装好的。 转到 → ,如下面的屏幕截图所示。 步骤2 - 安装Buildship插件 单击 Eclipse 中的 ,在打开界面中找到以下屏幕截图。在左侧搜索栏上输入。是一个Gradle集成插件。当在屏幕上找到时,