2013-05-22 8 views
5

Wenn ich Servlet mit Tomcat und Eclipse entwickle, muss ich Tomcat neu starten, wenn ich den Code für mein Servlet ändere, sonst sehe ich nichts, was geändert wurde.Warum muss ich Tomcat jedes Mal neu starten, wenn ich den Code für mein Servlet ändere?

Warum muss ich das tun?

und

Gibt es eine Möglichkeit, die Änderung ohne Neustart Tomcat zu sehen?

+1

Wenn Sie eine Klasse ändern, müssen Sie Tomcat neu starten. Wenn Sie eine JSP ändern, müssen Sie dies nicht tun. Ich weiß, dass es Optionen von "hot deploy" Kasse JREBEL und so gibt. – alfasin

+1

mögliches Duplikat von [Tomcat neu starten müssen, wenn Sie eine Änderung vornehmen] (http://stackoverflow.com/questions/4371724/having-to-restart-tomcat-whene-you-make-a-change) – alfasin

+2

Hallo, diese Frage wurde schon mal gefragt. Hier ist ein Link, der Ihnen dabei hilft. http://StackOverflow.com/a/4371821/2392140 –

Antwort

1

Die Java-Klassen, die Sie bearbeiten, werden in Klassendateien kompiliert, die vom Tomcat-Klassenladeprogramm geladen werden, wenn Tomcat Ihre App startet. Der Klassenlader versucht jedoch nicht, neue Versionen der Klasse zu laden, nachdem Tomcat Ihre Anwendung gestartet hat.

Eclipse hat eine nette Funktion namens "hot code replace", aber es funktioniert nur, wenn Sie Ihre Anwendung debuggen. In diesem Fall kompiliert Eclipse Ihren Code während der Bearbeitung (unabhängig davon, ob Sie debuggen oder nicht), und Eclipse versucht dann, die neu bearbeiteten Klassen, die er kompiliert hat, zu laden. Aber es funktioniert nur beim Debuggen Ihrer App.

Eine andere Möglichkeit ist ein JVM-Plugin wie JRebel, das Ihre Klassen hot-swaps unabhängig davon, ob Sie debuggen oder nicht.

+0

Der Hot-Code-Ersatz heißt eigentlich HotSwap und ist in allen IDEs verfügbar. –

3

Sie können tomcat konfigurieren, um Ihre Servlets automatisch neu zu laden, konfigurieren Sie das Attribut reloadable auf true des Contexts.

Für tun Tomcat 7 müssen Sie tun.

  1. bearbeiten CATALINA_HOME/conf/context.xml
  2. Wechsel:
<Context> 

Für:

<Context reloadable="true"> 

Wo CATALINA_HOME ist Tomcat Installation

Verwandte Themen