Déploiement à chaud JSP après modification avec Intellij 10.X et tomcat 6.X

j'ai une application Hello-World avec une classe java et un jsp. Le JSP imprime du texte qui est intégré dans le JSP et de la classe java. (Il imprime deux choses)

j'ai suivi les instructions ici pour créer et déployer mon application et cela fonctionne (la plupart du temps)! Je suis capable d'invoquer le JSP et il affiche correctement la page. Je suis également en mesure de modifier la classe java après avoir appuyé sur la touche Intellij reload bouton.

Problème: si je change le JSP, il ne se reflète pas dans le browswer.

j'ai vérifié ce qui suit:

  • web.le xml dans le répertoire Tomcat/conf ne remplace pas la valeur "développement". La valeur par défaut est true.
  • contexte.xml dans le contexte HelloWorldwebMETA-INF.xml et Tomcatconfcontext.xml a reloadable=true
  • que le JSP est copié de C:codeHelloWorldwebindex.JSP pour C:codeHelloWorldoutartifactsHelloWorld_war_explodedindex.jsp sur tout changement immédiatement
  • ce n'est pas un problème de cache navigateur

des idées?

19
demandé sur Tihom 2011-04-06 01:10:13

4 réponses

j'utilise Intellij IDEA 10.0.3 et j'ai rencontré le même problème. Je l'ai résolu en vérifiant un paramètre -"mise à Jour des ressources sur l'image de désactivation " dans la configuration de votre serveur tomcat dans la section de Configuration Run/Debug. Espérons que cette aide.

31
répondu cyanglee 2011-05-03 20:12:09

comme je réponds à cette question, IntelliJ IDEA est à la version 13.0.2. Les options sont légèrement différentes depuis que cette question a été posée. En bref, via le panneau "Run / Debug Configurations" pour votre projet:

  1. assurez-vous que votre projet est prêt à être déployé comme "la guerre a explosé" (via le "déploiement")
  2. dans L'onglet" Server", mettez "on frame deactivation "sur"Update classes and resources"

en suivant ces deux étapes, dans l'ordre, aboutira à la le projet est "changé" lorsque L'idée perd sa concentration (c.-à-d. lorsque vous changez de concentration pour un navigateur web).

Les instructions complètes sont disponibles à http://www.jetbrains.com/help/idea/2016.1/updating-applications-on-application-servers.html?search=application%20servers

30
répondu James Sumners 2016-05-13 15:04:24

essayez d'éditer Run/Debug Configuration, allez à L'onglet déploiement et déployez le fichier de guerre explosé.

6
répondu Sasa 2012-10-05 13:01:47

il y a des années J'ai fait configurer Tomcat pour recompiler les jsp quand il a vu un changement dans l'heure modifiée. Récemment, j'ai essayé les mêmes réglages, mais ça n'a pas marché pour moi.

dans ma situation, les changements que j'avais besoin de voir étaient principalement des changements en html et j'ai donc pu encapsuler la plupart du html dans un fichier html séparé. J'intègre ensuite son contenu dans le jsp en utilisant un fichier lu. J'ai ensuite été en mesure d'obtenir des changements immédiats à l'html reflète dans le navigateur sans redéployer. Notez qu'un JSP include n'a pas fait l'affaire (il cache le html), a dû lire le fichier en utilisant un lecteur de fichier dans un helper java pour retourner la chaîne au jsp. (vous pouvez mettre la logique java dans le jsp, mais ce n'est pas du tout mvc-like)

une mise en garde à cette approche est la fusion de données variables dans le fichier html. Il y a quelques approches que vous pouvez utiliser. 1. faire votre propre chaîne de remplacer l'algorithme et avoir votre aide app remplacer dynamiquement les cordes 2. à la sortie de votre les données variables dans un bloc javascript et laisser javascript mettre à jour les valeurs html dans votre fichier Lire bloc html (en supposant que vous avez les côtelettes javascript pour tirer cela hors).

2
répondu TroyJ 2011-04-22 13:54:03