2016-07-29 184 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日誌文件。現在應該給出更多關於這個問題的反饋。