将 Grails WAR 文件从 Tomcat 7 部署到 Tomcat 8 会出现 Ehcache 错误

Deploying Grails WAR file from Tomcat 7 to Tomcat 8 gives Ehcache error

我有在 2.5.1 版本中开发的 Grails web 项目。它在 Tomcat 7.0.63 中运行良好。当我在 Tomcat 8.0.33 中部署相同的 运行 WAR 文件时,它给出了 ehcache 错误:

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cache.ehcache.EhCacheFactoryBean]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.springframework.cache.ehcache.EhCacheFactoryBean.setMaxEntriesLocalHeap(J)V

我知道这是由于旧版本的 ehcache,但同样的 war 在 Tomcat 7 中工作正常,所以,Tomcat 8 中有什么问题?

任何帮助都会很棒。

谢谢。

更新: 如果我将 Tomcat 8 的所有 jar 文件替换为 Tomcat 7,那么它可以工作。但这样做似乎很愚蠢。

项目中存在多个ehcache jar 文件。 Hibernate 缓存和 spring 缓存,似乎 spring 缓存指向 Tomcat8 中的旧 jar。我们强制排除 ehcache-core 并且它起作用了。

更多信息:Exclude plugin