2017-08-23 4 views
0

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!

+1

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

+0

J'utilise Tomcat avec Java 8 – Ommadawn

+1

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

Répondre

0

Grâce à @aribeiro, j'ai réussi la solution pour moi.

Pour le démarrage de la WebApp, je lisais les propriétés du fichier.

Lorsque je souhaite modifier un attribut, je devrais utiliser une requête qui modifie explicitement la valeur (peut-être à partir d'un propre panneau d'administration).