我正在使用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数据库。
答案 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
日志文件。它现在应该提供有关该问题的更多反馈。