Erkennen von Eigenschaften von Datei-änderungen auch ohne Neustart von Tomcat
Gibt es eine Möglichkeit für den server zu erkennen, die änderungen ohne Neustart nach einer properties-Datei aktualisiert? Denn es führt zu Java.lang.OutOfMemoryError: PermGen space nach dem zweiten Neustart.
Den Eigenschaften der Datei unter Web-Inf-Ordner.
Cheers...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es gibt keinen direkten Weg!
Den Tomcat-Webapp-Classloader speichert jede Ressource, die geladen wurde, indem Sie es. Eine Veränderung wird nicht sichtbar, wenn Sie starten Sie den Kontext. Es gibt keine API für das clearing, dass cache. Alles, was Sie tun können, ist der Zugriff auf die Karte über Reflexion und rufen Sie die clear-Methode. Alle Ressourcen werden neu vom Datenträger gelesen auf Anfrage.
Klar diese HashMap und Sie sind fertig! Der Datei-monitor wird nicht wirklich helfen, da du einen custom classloader.
Werfen Sie einen Blick auf die Tomcat-Kontext/WatchedResources.
<Context reloadable="true">
<WatchedResource>path/to/watched/resource</WatchedResource>
</Context>
http://www.mulesoft.com/tomcat-reload#context
Wenn Sie auf JDK 7, können Sie überwachung des Dateisystems auf Veränderungen und lädt die Datei erneut, wenn nötig.
Wenn Sie noch nicht mit dem JDK 7, dann würde ich vorschlagen, mit einem Datei Monitor, wie dieser zu überwachen, änderungen an Ihrem Eigentum Datei, und wenn Sie änderungen, die Sie gerade rel-Lesen Sie die property-Datei in Ihre
Properties
Objekt.