[英]RuntimeException when running Servlet: Tomcat restarting on its own
我是servlet的新手,並使用Tomcat 7.0.34版(指示我們僅使用此版本)。 我的問題是Tomcat似乎在某個時間點重新啟動,當我一段時間不與servlet交互時會發生這種情況。 我看到以下內容:
此外,當我嘗試通過Eclipse調試時,我在調試窗口中看到以下條目:
Daemon Thread [http-bio-80-exec-1] (Suspended (exception RuntimeException))
ThreadPoolExecutor(ThreadPoolExecutor).runWorker(ThreadPoolExecutor$Worker) line: not available
ThreadPoolExecutor$Worker.run() line: not available
TaskThread(Thread).run() line: not available
而這在控制台中:
SEVERE: The web application [/csj] is still processing a request that has yet to finish. This is very likely to create a memory leak. You can control the time allowed for requests to finish by using the unloadDelay attribute of the standard Context implementation.
Okt 03, 2016 1:39:39 AM org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/csj] is completed
我想知道Tomcat重新啟動的原因。 如果我不加延遲地單擊按鈕,則不會出現此問題。
我嘗試在此處查看: Tomcat顯示此錯誤“這很可能造成內存泄漏”。 如何解決這個問題? 此處: Web應用程序[ROOT]仍在處理尚未完成的請求。 [Tomcat]但我不知所措。
似乎此問題已在Tomcat的較新版本中按以下方式解決: http : //wiki.apache.org/tomcat/MemoryLeakProtection 。 不過,我想了解這個問題是什么。
編輯:使用蝕星
在server.xml中,設置reloadable =“ false”。
來自https://tomcat.apache.org/tomcat-5.5-doc/config/context.html
如果您希望Catalina監視/ WEB-INF / classes /和/ WEB-INF / lib中的類是否有更改,請設置為true,並在檢測到更改時自動重新加載Web應用程序。 此功能在應用程序開發期間非常有用,但是它需要大量的運行時開銷,因此不建議在已部署的生產應用程序上使用。 這就是為什么此屬性的默認設置為false的原因。 但是,您可以使用Manager Web應用程序來觸發按需重新加載已部署的應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.