J'édite des fichiers JSP qui résident directement dans Tomcat/webapps/myapp/WEB-INF
, mais pour voir les modifications, je dois redémarrer le serveur. Autant que je sache, les modifications JSP ne vous obligent pas à redémarrer le serveur. La seule configuration que j'ai trouvée et qui est liée au rechargement automatique est reloadable = "true"
Définissez la valeur sur true si vous souhaitez que Catalina prenne surveillez les classes dans /WEB-INF/classes/ et/WEB-INF/lib pour les modifications, et recharger automatiquement le Web application si un changement est détecté.
J'ai utilisé cet attribut dans le context.xml
, mais le problème persiste. Quelle pourrait être l'autre raison possible de ne pas détecter les modifications dans les fichiers JSP sans redémarrer?
@Bozho: Ceci est l'extrait de web.xml
. Dois-je changer quelque chose?
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.Apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
Dans les documents Tomcat , reportez-vous au paramètre development
. Il doit être défini sur true pour que jsps soit rechargé.
development - Jasper est-il utilisé en mode développement? Si la valeur est true, la fréquence à laquelle les modifications des JSP sont vérifiées peut être spécifiée via le paramètre modificationTestInterval.true ou false, true par défaut.
Ceci est dans votre CATALINA_HOME/conf/web.xml
En outre, si vous devez actualiser un fichier JSP dans un environnement de production sans redémarrage, vous pouvez accéder à CATALINA_HOME/work/Catalina/localhost/contentName/org/Apache/jsp
et supprimer les fichiers your_jsp.Java
et your_jsp.class
. Ils seront recréés lors de leur prochain accès.
Modifier: après avoir fourni votre configuration et vos commentaires sur le fait de ne pas actualiser le contenu, j’en ai un autre: effacez le cache de votre navigateur ou ouvrez la page à partir d’un autre navigateur.
Une réponse encore plus tardive ...
Définir "antiResourceLocking" sur "true" dans le fichier de contexte peut empêcher le rechargement de JSP par Tomcat ( Bugzilla 37668 ).
Ceci est documenté dans le document Tomcat doc , dans l'explication du paramètre "antiResourceLocking"
J'ai eu le même problème et résolu le problème. Assurez-vous que dans conf/context.xml
vous n’avez pas la configuration suivante
<Context antiJARLocking="true" antiResourceLocking="true">
Si vous en avez un, supprimez les deux antiJARLocking="true" antiResourceLocking="true"
, écrivez simplement
<Context>
Aussi simple que cela puisse paraître, voici ce que signifie "définir le développement comme une réalité" (plus pour une référence rapide):
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.Apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<!-- Add the following init-param -->
<init-param>
<param-name>development</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
Et puis redémarrer.
Une réponse tardive pourrait être utile à tout le monde.
Vérifiez les autorisations sur le dossier Tomcat, j'ai essayé beaucoup d'autres solutions et cela n'a pas fonctionné.
Enfin, j'ai donné à mon dossier "Tomcat" l'autorisation "Contrôle total" de mon compte d'utilisateur. Tomcat a pris connaissance des modifications chaque fois que je modifiais JSP. Je suppose que vous utilisez Windows . La raison en était: chaque fois que vous modifiez un fichier JSP, il doit être compilé et déployé (écrit) dans le dossier webapps. S'il n'y a pas d'autorisation «d'écriture» sur ce dossier, il échouera silencieusement. Cela se passait dans mon cas. Par conséquent, si reloadable = true
et development = true
dans le fichier context.xml ne fonctionnent pas, essayez ce correctif.
J'utilise Tomcat 7 sur Windows 7.
Synchroniser l'heure du serveur et du client
vous pouvez vérifier l'heure de votre serveur et l'heure du système client. Pour moi, il y a quelques jours après avoir changé l'heure du serveur correctement travaillé. Il reflétait les modifications des fichiers .jsp.
J'utilise TomEE 1.7.2 sur Windows 7 avec Eclipse. La solution qui a fonctionné pour moi consistait simplement à modifier le fichier web.xml du serveur TomEE sur localhost-config (dans mon IDE) afin que le paramètre de développement initial soit à la valeur true:
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.Apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>development</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
(Tomcat 7.0.62) Je devais accéder à CATALINA_HOME/temp/xx -mysite /, trouver mon fichier jsp dans that arborescence de répertoires et le modifier.
xx est un préfixe aléatoire (?), dans mon cas 11, mais chaque site en avait un.
Ouvrez votre fichier context.xml
dans votre dossier META-INF et définissez antiJARLocking
sur false.
Votre arborescence de répertoires devrait être la suivante:
Web> META-INF> context.xml
Vous devez accéder au projet de serveur dans Eclipse, modifier le fichier web.xml et définir 'development' sur true.
Moi aussi, j’ai fait face à ce problème lors de modifications jsp dans myeclipse, celles-ci ne sont pas reflétées dans l’application en cours d’exécution. J'espère que ces vérifications vous aideront.
J'espère que cela t'aidera.