grails run-war导致SLF4J:类路径包含多个SLF4J绑定

时间:2017-06-03 20:03:23

标签: grails slf4j grails-plugin grails-2.0 slf4j-api

我使用的是grails 2.4.2版本。当我运行命令run-app时,应用程序运行正常,在Intellij控制台中没有错误。当我运行命令prod run-app时,它也可以正常工作而不会出错。但是当我运行命令run-war时,会给出以下错误。我已经搜索了它,但没有解决方案适用于我的情况或我可能不理解。请问有谁可以帮我解决这个问题吗?我真的要在2天内上传战争。这是我在Intellij控制台>>>

中的错误
    |Done creating WAR target\alhikmah-0.1.war
|Running Grails application
Error |
SLF4J: Class path contains multiple SLF4J bindings.
Error |
SLF4J: Found binding in [jar:file:/C:/Users/aina/.m2/repository/org/grails/grails-plugin-log4j/2.4.2/grails-plugin-log4j-2.4.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
Error |
SLF4J: Found binding in [jar:file:/D:/projects/alhikmah/target/work/tomcat/webapps/alhikmah/WEB-INF/lib/grails-plugin-log4j-2.4.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
Error |
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Error |
SLF4J: Actual binding is of type [org.slf4j.impl.GrailsSlf4jLoggerFactory]
Error |
log4j:WARN No appenders could be found for logger (org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener).
Error |
log4j:WARN Please initialize the log4j system properly.
Error |
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception sending context initialized event to listener instance of class org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pluginManager' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.reflect.MalformedParameterizedTypeException
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.reflect.MalformedParameterizedTypeException
    at java.beans.FeatureDescriptor.getParameterTypes(FeatureDescriptor.java:387)
    at java.beans.MethodDescriptor.setMethod(MethodDescriptor.java:114)
    at java.beans.MethodDescriptor.<init>(MethodDescriptor.java:72)
    at java.beans.MethodDescriptor.<init>(MethodDescriptor.java:56)
    at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1131)
    at java.beans.Introspector.getBeanInfo(Introspector.java:414)
    at java.beans.Introspector.getBeanInfo(Introspector.java:161)
    ... 5 more
Error listenerStart
Context [/alhikmah] startup failed due to previous errors
The web application [/alhikmah] registered the JDBC driver [org.h2.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
The web application [/alhikmah] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
The web application [/alhikmah] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.
|Server running. Browse to http://localhost:8080/alhikmah
|Server running. Browse to http://localhost:8080/alhikmah

2 个答案:

答案 0 :(得分:1)

升级Grails版本可能会解决您的问题。 升级程序

  1. 项目 - &gt;清洁

  2. application.properties - &gt;更改app.grails.version =(新版本)

  3. 您的项目 - &gt;属性 - &gt; Grails - &gt;将grails安装更改为新的grails版本。

  4. 您的项目 - &gt; Grails工具 - &gt;刷新依赖关系

  5. 运行您的项目

  6. 或者查看Grails Upgrade

答案 1 :(得分:0)

在buildConfig.groovy

中添加此代码
inherits("global") {
        excludes 'grails-plugin-log4j'
    }