Wie kann ich Tomcat stoppen caching meinem servlet Antworten?
Ich bin Lern-Servlet-Programmierung, Apache Tomcat 6 auf einem Ubuntu 8.10-Maschine, und ich bin mit einem sehr lästigen Problem -- offenbar, im Zusammenhang mit caching.
Dies ist, was ich Tue: ich Schreibe ein servlet, steckte es in eine schöne Verzeichnisstruktur und verteilen Sie es mit dem Tomcat Web Application Manager. Es funktioniert wie erwartet. Dann Bearbeite ich das servlet kompilieren und versuchen, auf es wieder, aber Tomcat hält die Rückgabe der gleichen alten version. Neuladen der Anwendung oder sogar den server neu starten, funktioniert nicht. Das einzige, was funktioniert ist "deinstallation von" die Anwendung, dann setzt es wieder ein.
Habe ich, dies zu tun jedes mal, wenn ich kleine änderung an meinem code. Es saugt.
Ich bin sicher, es gibt einen Weg, um dieses, aber ich konnte nicht die Antwort finden überall im web (und ich Suche viel). Ich würde wirklich zu schätzen jede Hilfe. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Rat von Adeel Ansari ist fehlerhaft: man sollte nie ändern CATALINA_HOME/conf/context.xml mit webapp-spezifische Konfiguration. Das ist, was your-webapp/META-INF/context.xml wird für.
Sollten Sie auch nie geben die "docBase" - Attribut <Kontext>.
Sie sollten auch nie geben Sie die "path" - Attribut <Kontext>.
Die OP hat mehrere Optionen:
Den manager neu laden der web-app - (deinstallieren/erneut bereitstellen, sollten Sie nicht nötig sein: ein einfaches reload funktionieren sollte)
( http://tomcat.apache.org/tomcat-6.0-doc/manager-howto.html#Reload_An_Existing_Application )
Legen Sie das element in META-INF/context.xml haben reloadable="true"
( http://tomcat.apache.org/tomcat-6.0-doc/config/context.html )
Mit allem Respekt, um SO, wenn Sie Hilfe brauchen, Tomcat, kommen die Benutzer, mailing-Liste und erhalten Sie einige echte Antworten.
conf/context.xml
). Definition der JNDI-Datenquellen ist geeignet für server.xml und dann mit<ResourceLink>
, aber Sie nicht möchten, ändern Sie die Standard-Konfiguration für alle webapps auf den ganzen container durch ändernconf/context.xml
.Habe ich auf ähnliche Probleme gestoßen, die mit Tomcat 5.5. Ich habe nie herausgefunden die Ursache, aber ich arbeitete um es durch löschen des Ordners entsprechend der webapp von %CATALINA_HOME%/work/Catalina/localhost. Es ist nicht eine große Lösung, aber es vermeidet, dass Sie deinstallieren/erneutes bereitstellen der gesamten Anwendung.
Unter Ihrem TOMCAT_HOME/conf/, findest du eine Datei namens Context.xml. Der Inhalt würde wie folgt Aussehen,
Beiden Zeilen sind auskommentiert hier sollten Sie kommentieren Sie beide zu. Seine wahrscheinlich, dass Sie die 2. kommentiert oder könnte es nicht bei allen. Versuchen Sie, kommentieren Sie es oder fügen Sie es in letzterem Fall. Ich gehe davon aus, dass Sie die Bereitstellung Ihrer app unter TOMCAT_HOME/webapps.
[Bearbeitet]
Versuchen Sie es mit docBase, und Pfad attribure unter Ihrem Kontext element. Unten ist das Beispiel
HINWEIS: nicht enthalten WEB_INF
[Bearbeitet]
Vielleicht bin ich etwas fehlt. Überprüfen Sie diese aus. Es ist die gleiche, aber viel mehr klar und anschaulich einschließlich paar andere Optionen.
Sagen Sie nicht: wenn Sie bei Verwendung der ubuntu-tomcat oder separater download von tomcat.apache.org. Wenn Sie mit ubuntu one, versuchen, damit es einfacher mit der Verwendung einer separaten download. Der standard-download ist sehr einfach zu verwalten, und eher darauf ausgerichtet, die Arbeit out of the box. Es könnte sein (ich weiß nicht), dass die ubuntu one kann so konfiguriert werden, mehr in Richtung Produktion zu verwenden, z.B. könnte es etwas gehärtet.
Die empfohlene Einstellung der Produktion für tomcat ist genau das, was Sie beschreiben (z.B. kein auto-deploy usw). Die Entwicklung der Einstellung ist einfacher zu bedienen.
Wenn Sie Netbeans dann automatisch neu kompiliert die Klasse und spritzt es in die webapp läuft, wenn Sie die Datei speichern. Es sind keine zusätzlichen Schritte, drücken Sie einfach "speichern".