2010-08-31 4 views
6

Ich benutze die Hot-Swap-Java-Debugging-Funktion mit Web-App auf Tomcat. Nach einigen Änderungen der Klassensignatur habe ich den Eclipse-Dialog "Hot Code Replace Fail" erhalten - das verstehe ich.Eclipse Hot Code Replace Fail - Webanwendung erneut veröffentlichen

In diesem Fall möchte ich die Anwendung erneut veröffentlichen (ich kann das tun) und mit dem neu bereitgestellten Code arbeiten. Der Debugger klagt jedoch immer noch, bis ich den Server neu starte. Wegen anderer Apps und langem Start möchte ich das nicht.

Gibt es eine Möglichkeit, dem Debugger mitzuteilen, dass die neue Klassenversion bereits in einem neuen webapp Classloader neu geladen wurde und dass es sicher ist fortzufahren?

Danke.

Antwort

2

Warum versuchen Sie nicht mit JRebel? JRebel ist ein JVM-Java-Agent, der in Anwendungsserver integriert ist und Klassen mit vorhandenen Klassenladeprogrammen nachladen kann. Nur geänderte Klassen werden neu kompiliert und sofort in der laufenden Anwendung neu geladen. JRebel wird in IDEs und Build-Systeme gesteckt. Klassen und statische Ressourcen werden direkt aus dem Arbeitsbereich geladen. http://zeroturnaround.com/software/jrebel/

Grüße, Andrea

0

Es gibt ein Projekt alten PHD ist. Der Typ, der es gemacht hat, wurde von Oracle geholt, aber seine Arbeit hat es nicht zu Java 8 geschafft und wird hoffentlich in Java 9 zu sehen sein, ist aber eher in Java 10. Es gibt eine neue Version davon für Java 8. Ich habe es noch nicht versucht.

meine ursprüngliche Frage für weitere Informationen: Advanced Code Hot Swapping in JDK 8?

Und die Projektseite auf Github: https://github.com/dcevm/dcevm

Mit diesem können Sie heißen ersetzen fast jede Klasse Änderung, die Sie von einem Neustart des JDK je nach zu befreien. (neben Nebeneffekten für statische Objets und Singletons, aber das wäre logisch)

0

Haben Sie versucht Server-Optionen - Module ohne Publishing zusammen mit Publishing?

Server Options
Publishing

auch nicht sicher, was Sie über andere Apps sagen.

+0

Sie sind richtig: In diesem Bildschirm können Sie einen Parameter ändern, um Änderungen im Server automatisch ohne Neustart wiederzugeben, aber es ist nicht der, den Sie sagten. Es ist im Publishing-Bereich, Änderung von nie veröffentlichen, um automatisch zu veröffentlichen, wenn Ressourcen ändern –

+0

Bitte beachten Sie die Option "Module ohne Veröffentlichung" –

+0

Ich dachte, das war nur für Ressourcen innerhalb WebContent-Ordner, nicht für Java-Klassen –

Verwandte Themen