tomcat默認reload引發宕機

項目使用文件來保存修改,爲了方便直接把文件放在src目錄下;部署後發現過了一陣tomcat就會宕機;
日誌爲:

Oct 18, 2013 5:20:11 PM org.apache.catalina.core.StandardContext reload
INFO: Reloading this Context has started
Oct 18, 2013 5:20:11 PM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/a7list] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@13c4a657]) and a value of type [com.caucho.services.server.ServiceContext] (value [com.caucho.services.server.ServiceContext@5384a3e4]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.
...-----
       tomcat 6.025以後引入了一種內存泄露的檢查機制,會把不能垃圾收集的對像作日誌。
     當您從新部署您的應用程序時,Tomcat 將建立新的類加載器。舊類加載器必須是垃圾回收,不然你會 permgen 內存泄漏。


分析緣由是因爲運行項目的classes目錄文件變動引發tomcat reload,同時reload時沒有釋放資源引發的宕機。
修改方式:
一、部署時修改tomcat 的server.xml文件,讓項目變動時不reload。
      修改文件:conf\server.xml
      修改位置:
<Host name="localhost" debug="0" appBase="webapps"  unpackWARs="true" autoDeploy="true"  xmlValidation="false" xmlNamespaceAware="false">
     <Context path="/myapp"  docBase=" "  debug="0" reloadable="false"/>

二、將變動文件放到項目代碼外面。

採用的方式是兩種都使用了~
相關文章
相關標籤/搜索