2016-07-29 185 views
0

我正在使用Grails框架工作,当我创建一个战争文件并将其部署在Tomcat-7上时,出现以下错误。但是有一段时间,部署是成功的。战争文件未能在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 SEVERE:由于之前的错误导致Context []启动失败 2016-07-29 10:19:23,951 [localhost-startStop-1] WARN lifecycle.ShutdownOperations - 发生错误shutdown operation:BeanFactory未初始化或已关闭 - 调用'在通过ApplicationContext访问Bean之前刷新' java.lang.IllegalStateException:BeanFactory未初始化或已经关闭 - 在通过ApplicationContext访问Bean之前调用'refresh'在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) at java.util (ThreadPoolExecutor.java:1145) at java.util.Thread.run(Thread.java:722) 七月29,2016 10:19:23 AM org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc SEVERE:Web应用程序[]注册了JDBC驱动程序[com.mysql.jdbc.Driver],但未能在Web应用程序中注销它被停止。为了防止内存泄漏,JDBC驱动程序已被强制注销。 2016年7月29日上午10:19:23 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE:Web应用程序[]似乎已启动一个名为[Abandoned connection cleanup thread]的线程,但未能阻止它。这很可能造成内存泄漏。 2016年7月29日上午10时19分23秒org.apache.catalina.loader.WebappClassLoader clearReferencesThreads SEVERE:Web应用程序[]似乎已启动名为[[email protected]]的线程但失败停止它。这很可能造成内存泄漏。

我无法理解为什么会发生这种情况。有人可以告诉我这里有什么问题吗?我相信这个错误即将到来,因为它由于某些问题而无法连接到mysql数据库。

+0

您必须在不重新启动tomcat的情况下部署了您的战争,并且无法停止先前创建的所有线程。尝试重新启动tomcat。 –

+0

感谢Prakash的回应。我重新启动了tomcat几次,但又得到了同样的错误。 – Rohith

回答

1

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

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

尝试添加logging.properties文件,并将其与下面的内容放置到WEB-INF/classes目录中的war

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日志文件。现在应该给出更多关于这个问题的反馈。