«SEVERE: Ошибка listenerStart» при попытке запустить приложение Grails в Tomcat - PullRequest
12 голосов
/ 28 января 2012

У меня проблема с приложением Grails, над которым я работаю, и я не могу понять это. Это приложение Grails 2.0, которое должно работать в стабильной версии Debian с Tomcat7. Поэтому я создал файл войны и развернул его в Tomcat. Как только я запускаю его, я получаю следующий вывод журнала в лог-файл Tomcat (catalina.out):

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
28-Jan-2012 13:02:00 org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
28-Jan-2012 13:02:00 org.apache.catalina.core.StandardContext start
SEVERE: Context [/Gibbons5] startup failed due to previous errors
28-Jan-2012 13:02:00 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
SEVERE: The web application [/Gibbons5] registered the JBDC 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.

Я попытался сделать вывод немного более подробным, увеличив уровень логики Tomcats до FINEST, но это не дает мне больше информации. Также я изменил уровень логирования приложения на отладочный, но это тоже не помогает.

На моем локальном Tomcat все отлично работает с той же войной и Tomcat7.

BuildConfig.groovy

grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.dependency.resolution = {
    // inherit Grails' default dependencies
    inherits("global") {
    }
    log "warn" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
    repositories {
        grailsPlugins()
        grailsHome()
        grailsCentral()
        mavenCentral()
    }
    dependencies {
        compile "org.jadira.usertype:usertype.jodatime:1.9"
        runtime 'mysql:mysql-connector-java:5.1.18'
    }
}

codenarc.reports = {
    XMLReport('xml') {
        outputFile = 'CodeNarcReport.xml'
        title = 'Gibbons5'
    }
    HTMLReport('html') {
    outputFile = 'CodeNarcReport.html'
        title = 'Gibbons5'
        }
}
codenarc.propertiesFile = 'codenarc.properties'

// cobertura exclusions
coverage {
    exclusions = [
        '**/BuildConfig*',
        '**/*SecurityConfig*'
    ]
}

application.properties

#Grails Metadata file
#Tue Jan 03 23:21:41 CET 2012
app.context=/
app.grails.version=2.0.0
app.name=Gibbons5
app.servlet.version=2.5
app.version=0.1
plugins.burning-image=0.5.0
plugins.code-coverage=1.2.5
plugins.codenarc=0.16.1
plugins.hibernate=2.0.0
plugins.joda-time=1.3.BUILD-SNAPSHOT
plugins.jquery=1.7.1
plugins.svn=1.0.1
plugins.syntax-highlighter=0.1.4
plugins.tomcat=2.0.0

BootStrap.groovy

import grails.util.GrailsUtil

class BootStrap {

    def baseDataGenerator

    def init = { servletContext ->
        switch (GrailsUtil.environment) {
            case 'development':
                log.debug("init() - booting as development")

                baseDataGenerator.generateData()

                break

            case 'production':
                log.info("init() - booting as production")

                baseDataGenerator.generateData()

                break

            case 'test':
                log.debug("init() - booting as test")

                baseDataGenerator.generateData()

                break

            default:
                log.warn("init() - uncovered environment " + GrailsUtil.environment)
        }
    }

    def destroy = {}
}

Ответы [ 2 ]

25 голосов
/ 03 апреля 2012

Я получил ту же ошибку, но нашел следующую статью:

http://mythinkpond.wordpress.com/2011/07/01/tomcat-6-infamous-severe-error-listenerstart-message-how-to-debug-this-error/

В резюме вам необходимо создать файл logging.properties в WEB-INF /классы (вы можете добавить его в разобранную папку внутри webapps и перезапустить tomcat)

Содержимое файла logging.properties может быть:

org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler

После перезапуска Tomcat вы можете увидеть более подробные ошибки.

5 голосов
/ 09 марта 2012

У меня была такая же ошибка в Tomcat7.Я обнаружил, что если бы я следовал инструкциям по преобразованию Tomcat для использования log4j, он мог бы зафиксировать ранние ошибки в журналах, но с настройкой Tomcat по умолчанию, если ошибка возникает в начале процесса запуска приложения Grails, «Error listenerStart» - это всевы получаете.

Некоторые источники этого:

  1. Для источника данных задано значение dbCreate: validate, и БД не синхронизирована с классами домена GORM.
  2. Ошибки в BootStrap.groovy, в основном связанные с попыткой автоматического создания объекта домена, который уже существовал из-за предыдущего запуска.
  3. Другие ошибки конфигурации (менее вероятно.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...