Je viens de créer un filtre Java qui, si l'une de ses propriétés a une valeur vraie, le filtre redirigera toutes les requêtes vers une JSP de maintenance (le serveur n'est pas opérationnel). Si cette propriété a une valeur false, le filtre redirigera vers la bonne cible. Le filtre lit la valeur booléenne d'un fichier config.properties. Il est quelque chose comme ceci:Comment Java Web lit-il automatiquement les nouveaux changements sur les attributs?
// Read the file property
private static boolean MAINTENANCE = Boolean.parseBoolean(p.getProperty("maintenance"));
...
if(MAINTENANCE) {
redirectToURL("maintenance.jsp"); // maintenance JSP
}
else {
chain.doFilter(request, response); // requested jsp/servlet
}
...
Le point est ... Si mon Web est en cours d'exécution et je veux le mettre en mode maintenance, comment pourrais-je faire pour le serveur lit la nouvelle valeur de cette propriété de la fichier? Je veux dire: Je me connecte au serveur, édite le fichier de configuration, mets la propriété "maintenance" à une valeur égale à true ... Mais, comment puis-je faire pour que l'application web le lise?
Merci!
Quel serveur d'applications envisagez-vous d'utiliser? Avez-vous essayé de jeter un oeil à ces réponses: [mettre à jour le fichier d'exécution du fichier de propriétés] (https://stackoverflow.com/questions/1659642/java-update-properties-file-run-time), [modifier l'exécution du fichier de propriétés] (https://stackoverflow.com/questions/4469774/how-to-change-java-properties-at-runtime) et [Mettre à jour le fichier de propriétés à l'exécution] (https://stackoverflow.com/questions/15761163/update- properties-file-at-runtime). – aribeiro
J'utilise Tomcat avec Java 8 – Ommadawn
Ensuite, jetez un oeil à [cette réponse] (https://stackoverflow.com/questions/9350974/modify-properties-file-in-tomcat-during-runtime). En outre, vous devriez penser à créer un moyen de modifier votre fichier de configuration via votre application. De cette façon, vous pouvez déclencher son rechargement et remplacer les valeurs chargées lors de l'initialisation du conteneur. – aribeiro