战争文件无法在Tomcat 7

时间:2016-07-29 05:05:52

标签: java mysql tomcat7 grails-2.0

我正在使用Grails Frame工作,当我创建war文件并将其部署在Tomcat-7上时,我收到以下错误。但有一段时间部署是成功的。

2016年7月29日上午10:19:23 org.apache.catalina.core.StandardContext startInternal 严重:错误listenerStart 2016年7月29日上午10:19:23 org.apache.catalina.core.StandardContext startInternal 严重:由于先前的错误,Context []启动失败 2016-07-29 10:19:23,951 [localhost-startStop-1] WARN lifecycle.ShutdownOperations - 运行shutdown操作时出错:BeanFactory未初始化或已经关闭 - 在通过ApplicationContext访问bean之前调用'refresh' java.lang.IllegalStateException:BeanFactory未初始化或已经关闭 - 在通过ApplicationContext访问bean之前调用'refresh'     at java.util.concurrent.Executors $ RunnableAdapter.call(Executors.java:471)     at java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:334)     at java.util.concurrent.FutureTask.run(FutureTask.java:166)     在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)     at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)     在java.lang.Thread.run(Thread.java:722) 2016年7月29日上午10:19:23 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc 严重:Web应用程序[]注册了JDBC驱动程序[com.mysql.jdbc.Driver],但在Web应用程序停止时无法注销它。为防止内存泄漏,JDBC驱动程序已被强制取消注册。 2016年7月29日上午10:19:23 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 严重:Web应用程序[]似乎已启动名为[Abandoned connection cleanup thread]的线程但未能阻止它。这很可能造成内存泄漏。 2016年7月29日上午10:19:23 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads 严重:Web应用程序[]似乎已启动一个名为[net.sf.ehcache.CacheManager@6b0bbde6]的线程,但未能阻止它。这很可能会造成内存泄漏。

我无法理解为什么会这样。谁能告诉我这里有什么问题?我相信这个错误即将到来,因为它由于某些问题无法连接到mysql数据库。

1 个答案:

答案 0 :(得分:1)

如果你谷歌这句话:SEVERE: Error listener你会得到一些解释为什么会发生这种情况。

Tomcat不会在Listeners and Filters初始化代码中显示默认的日志/异常消息。

尝试添加logging.properties文件并将其放入war中的WEB-INF / classes,其中包含以下内容:

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

为了让您更轻松,您可以通过以下方式在BuildConfig.groovy中自动执行此操作:

grails.war.resources = { stagingDir, args ->
      def tomcatLoggingProperties = '''org.apache.catalina.core.ContainerBase.[Catalina].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].handlers = java.util.logging.ConsoleHandler'''
    new File("${stagingDir}/WEB-INF/classes/logging.properties").write tomcatLoggingProperties
}

将战争部署到Tomcat后,请检查您的catalina.out日志文件。它现在应该提供有关该问题的更多反馈。