Reconnaissant fichier de propriétés de modifications sans redémarrer Tomcat
Est-il un moyen pour le serveur de reconnaître les changements sans avoir à redémarrer après un fichier de propriétés de mise à jour? Parce qu'il provoque de Java.lang.OutOfMemoryError: PermGen space après le deuxième redémarrage.
Le fichier de propriétés est sous dossier Web-Inf.
Acclamations...
OriginalL'auteur Pinchy | 2011-12-27
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas de moyen direct!
Le Tomcat Webapp chargeur de classe caches de toutes les ressources qui ont été chargés par elle. Un changement ne sera visible que si vous redémarrez le contexte. Il n'y a pas d'API de compensation du cache. Tout ce que vous pouvez faire est de l'accès que de la carte via la réflexion et l'appel de la méthode clear. Toutes les ressources seront re-lecture à partir du disque sur demande.
Claire cette HashMap et vous êtes fait! Le moniteur de fichiers ne sera pas vraiment de l'aide car vous avez un classloader personnalisé.
OriginalL'auteur Michael-O
Prendre un coup d'oeil au Contexte Tomcat/WatchedResources.
<Context reloadable="true">
<WatchedResource>path/to/watched/resource</WatchedResource>
</Context>
http://www.mulesoft.com/tomcat-reload#context
OriginalL'auteur ricosrealm
Si vous êtes sur le JDK 7, vous pouvez regarder le système de fichiers pour les changements et recharger le fichier si nécessaire.
OriginalL'auteur mindas
Si vous n'utilisez pas encore le JDK 7 alors je vous suggérons d'utiliser un Analyseur de fichier comme ceci pour surveiller les modifications de votre fichier de propriétés et quand il change juste le rel-lire le fichier de propriétés dans votre
Properties
objet.OriginalL'auteur anubhava