【问题标题】:Grails deployment to Glassfish and slf4jGrails 部署到 Glassfish 和 slf4j
【发布时间】:2013-04-16 13:40:06
【问题描述】:

我正在开发一个 grails 应用程序,并一直在尝试将其部署到 glassfish 。但是,在部署期间,我收到以下错误:

来自服务器日志:

[#|2013-04-16T07:53:21.540-0400|INFO|glassfish3.1|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=91;_ThreadName=Thread-1;|2013-04-16 07:53:21,540 [admin-thread-pool-7720(2)] ERROR context.ContextLoader  - Context initialization failed

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is **java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V**
                at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:420)
                at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)

                at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) 

……

在我的系统类路径中,我有以下文件: slf4j-api-1.5.6.jar、slf4j-api-1.5.6.jar、slf4j-log4j12-1.5.6.jar。

我认为问题在于 Grails 正在尝试从 slf4j 1.6 加载方法(我在 Grails 2.1.0 上)。我希望 Grails 使用它的 webapps 类路径,而不是使用系统类路径。

我该怎么做?

【问题讨论】:

    标签: grails glassfish slf4j


    【解决方案1】:

    如果我没记错的话,你的容器中不能有同一个库的两个版本,所以你需要将类路径中的版本升级到 1.6

    【讨论】:

    • 其实我解决了这个问题。令我惊讶的是 glassfish 尊重 weblogic.xml 文件。我所做的是创建了一个 weblogic.xml 文件并在其中添加了以下行:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多