“将另一个未命名的CacheManager存在于同一个VM中” - 将Grails 3.1.4应用程序部署到Elastic Beanstalk时出现错误

时间:2016-04-05 18:54:48

标签: grails spring-security elastic-beanstalk database-migration grails-3.1

自从大约一周前做了一个prod dbm-update后,我开始在将WAR文件部署到EB时出现此错误(run-app在dev和prod设置中都能正常工作):

Caused by: org.hibernate.cache.CacheException: net.sf.ehcache.CacheException: Another unnamed CacheManager already exists in the same VM. Please provide unique names for each CacheManager in the config or do one of following: 1. Use one of the CacheManager.create() static factory methods to reuse same CacheManager with same name or create one if necessary 2. Shutdown the earlier cacheManager before creating new one with same name.

Grails 2.5.0 release notes建议将beans.cacheManager.shared设置为true。没有帮助。

其他遇到类似问题的人建议将org.hibernate.cache.ehcache.EhCacheRegionFactory中的Hibernate缓存factory_class替换为org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory - this post。我认为它消除了未命名的cacheManager问题,但创建了另一个问题:

Caused by: java.io.FileNotFoundException: class path resource [db/changelog/db.changelog-master.yaml] cannot be resolved to URL because it does not exist

设置“liquibase.checkChangeLogLocation = false”和“liquibase.enabled = false”会触发另一个:

Caused by: org.grails.core.exceptions.GrailsConfigurationException: Error configuring dynamic methods for plugin [springSecurityCore:3.0.4]: null

我正在使用:带有AngularJS配置文件的Grails 3.1.4,Spring Security 3.0.4,Spring Security Rest 2.0.0.M2,Database Migration 2.0.0.RC4

我也试过了:

  • 切换到Spring Security 3.0.2,3.0.3
  • 对EC2实例进行定标
  • 重建整个EB环境并创建新数据库
  • 将hibernate use_second_level_cache设置为false
  • 降级为Grails 3.1.0
  • 设置sourceSets {main {resources {srcDir'grails-app / migrations'}}}

我的想法已经用完了,到目前为止没有任何帮助。有没有人有想法?或者面临类似的问题?

3 个答案:

答案 0 :(得分:1)

您最近是否升级到Hibernate 5.1.0.Final?如果是这样,那么您可能遇到与this one.相同的问题。似乎没有找到解决方案,但您可能希望降级到Hibernate 5.0.9.Final以暂时避免此问题。

答案 1 :(得分:0)

结果是Grails 3 AWS SDK插件存在问题。我恢复了所有更改,只是通过Gradle将AWS插件替换为适用于Java的Java SDK。

你可以看到from the plugin page它支持Grails高达3.1.1,但从3.1.4降级到3.1.1也没有任何区别。但是,是的,使用没有插件的AWS SDK。宇!

答案 2 :(得分:0)

我使用了Spring Security Core插件v3.0.4,并且在Grails v3.1.4上也遇到了这个错误。将SSC插件升级到v3.1.1。为我解决了这个问题。