我们有一个与Terracotta Ehcache 3.3一起运行的Grails(1.3.4)应用程序。我们正在尝试将Terracotta安装更新到最新的3.5.1。我在BuildConfig.groovy中添加了以下几行:


inherits("global") {
    // uncomment to disable ehcache
    // excludes 'ehcache'
    runtime 'net.sf.ehcache:ehcache-core:2.4.2'
    runtime 'net.sf.ehcache:ehcache-terracotta:2.4.2'
    runtime "org.terracotta:terracotta-toolkit-1.2-runtime:3.1.0"
  }

我能够生成.war文件,但是当我尝试部署它时,我得到了:

SLF4J: The requested version 1.5.8 by your slf4j binding is not compatible with [1.6]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
Jun 14, 2011 1:16:36 PM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
Jun 14, 2011 1:16:36 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/cooldeals-0.3.2] startup failed due to previous errors

我知道Terracotta 3.5.1和Grails使用不同版本的SLF4J,并且那里存在一些冲突。到底应该从BuildConfig中排除什么?

谢谢,
伊拉克利斯

最佳答案

运行grails dependency-report并检查哪些jar依赖于SFL4j Jar。

对我来说,这个 jar 在后面很疼。对于在glassfish 3.1.1上进行部署,我遇到了同样的问题。我通过创建应用程序 war 解决了此问题,并用war文件中的jar替换了glassfish安装中的sfl4j jar。

10-08 19:28