簡體   English   中英

無需重新啟動Tomcat即可識別屬性文件更改

[英]Recognizing properties file changes without restarting Tomcat

在更新屬性文件后,服​​務器是否有任何方法可以識別更改而無需重新啟動? 因為它導致第二次重啟后的Java.lang.OutOfMemoryError:PermGen空間。

屬性文件位於Web-Inf文件夾下。

干杯...

沒有直接的方法!

Tomcat Webapp類加載器緩存由它加載的每個資源。 除非重新啟動上下文,否則無法看到更改。 緩存沒有API清除。 您所能做的就是通過反射訪問該地圖並調用clear方法。 根據請求,將從磁盤重新讀取所有資源。 清除這個 HashMap,你就完成了! 由於您有自定義類加載器,因此文件監視器無法提供幫助。

看看Tomcat Context / WatchedResources。

<Context reloadable="true"> <WatchedResource>path/to/watched/resource</WatchedResource> </Context>

http://www.mulesoft.com/tomcat-reload#context

如果您使用的是JDK 7,則可以在文件系統中查看更改並在必要時重新加載文件。

如果您尚未使用JDK 7,那么我建議使用這樣的文件監視器來監視屬性文件的更改,以及何時更改只需將屬性文件重新讀取到Properties對象中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM