【发布时间】:2020-12-28 15:31:24
【问题描述】:
我有一个任务要解决我们以前的同事开发的旧 Grails 应用程序。使用的 grails 应用程序版本是 2.2.5,运行在 Java 1.7 上。当我运行应用程序时,我得到这个:(关于 plugins.log4j.Log4jConfig.methodMissing BeanUtils)
正在解决 [运行时] 依赖项... |错误 log4j:ERROR 初始化 log4j 错误:org/apache/commons/beanutils/BeanUtils |错误 java.lang.NoClassDefFoundError: org/apache/commons/beanutils/BeanUtils | org.codehaus.groovy.grails.plugins.log4j.Log4jConfig.methodMissing 出错(Log4jConfig.groovy:103) | sun.reflect.NativeMethodAccessorImpl.invoke0 错误(本机方法) | sun.reflect.NativeMethodAccessorImpl.invoke 出错(NativeMethodAccessorImpl.java:57) | sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 出错
应用程序确实运行但由于上述错误消息而没有日志。由于没有日志,因此无法跟踪和理解代码。提前感谢您的帮助。
这是 BuildConfig.groovy 中的依赖项和插件
dependencies {
runtime 'mysql:mysql-connector-java:5.1.22'
test "org.spockframework:spock-grails-support:0.7-groovy-2.0"
compile "org.jadira.usertype:usertype.jodatime:1.9"
runtime 'com.paypal.sdk:rest-api-sdk:0.7.0'
}
plugins {
runtime ":hibernate:$grailsVersion"
runtime ":jquery:1.8.3"
runtime ":resources:1.1.6"
compile ':runtime-logging:0.4'
build ":tomcat:$grailsVersion"
compile ":spring-security-core:1.2.7.3"
compile ":spring-security-ui:0.2"
compile ":famfamfam:1.0.1"
compile ":jquery-ui:1.8.24"
compile ":joda-time:1.4"
compile ":quartz:1.0-RC6"
compile ":audit-logging:0.5.4"
compile ":console:1.2"
compile ":mail:1.0.1"
compile ":kickstart-with-bootstrap:0.9.6"
runtime ":database-migration:1.3.6"
compile ':cache:1.0.1'
compile ':crypto:2.0'
compile ":csv:0.3.1"
test ":code-coverage:1.2.6"
compile ":gmetrics:0.3.1"
compile ":codenarc:0.23"
compile ":export:1.6"
}
和Config.groovy中的Log4j配置
log4j = {
def gbPattern = pattern(conversionPattern: "%d{dd MMM yyyy HH:mm:ss} [%X{user_rid},%X{user_name},%X{user_action}] [%5p] %-30.30c{2} %m%n")
def infoLog = "${new File('./logs').exists() ? './logs' : '/tmp/'}/info.log"
def debugLog = "${new File('./logs').exists() ? './logs' : '/tmp/'}/debug.log"
appenders {
console name: 'stdout', layout: gbPattern
appender new DailyRollingFileAppender(
name: 'debugLog',
threshold: org.apache.log4j.Level.DEBUG,
datePattern: "'.'yyyy-MM-dd", // See the API for all patterns.
fileName: debugLog,
layout: gbPattern
)
appender new DailyRollingFileAppender(
name: 'rollingLog',
threshold: org.apache.log4j.Level.INFO,
datePattern: "'.'yyyy-MM-dd", // See the API for all patterns.
fileName: infoLog,
layout: gbPattern
)
}
root {
if(Environment.isDevelopmentMode()) {
info 'stdout', 'rollingLog', 'debugLog'
} else {
info 'rollingLog', 'debugLog'
}
additivity = false
}
【问题讨论】:
标签: java grails groovy log4j apache-commons-beanutils