2016-04-29 8 views
6

Ich habe einige Probleme mit Feder geladen mit Feder mvc. Ich habe das gefüllte Glas als Java-Agent auf dem Server hinzugefügt.Mit Feder im Frühjahr geladen mvc Rahmen

Jetzt, als ich neue Methoden zum Beispiel in meinem Fall hinzugefügt habe ich eine neue Methode testHomes(), und es gibt mir mit diesem Dialog. enter image description here

Unten ist meine Config enter image description here

enter image description here

Ich habe auch Automatisch erstellen I Frühling Rahmen 4.2.5.RELEASE verwenden.

ich auf den folgenden Link geprüft SpringLoaded

Im Gegensatz zu ‚Hot Code ersetzen‘, die nur einfache Änderungen einmal JVM erlaubt ausgeführt wird (zB Änderungen an Methodenrümpfe), gefedert ermöglicht Ihnen das Hinzufügen/ändern/lösche Methoden/Felder/Konstruktoren. Die Anmerkungen zu types/methods/fields/constructors können ebenfalls geändert werden, und es ist möglich, Werte in enum-Typen hinzuzufügen/zu entfernen/zu ändern.

Kann ich das irgendwie machen?

Grüße,

+0

Ihre Konfiguration ist perfekt. Aber es gibt einige interne Probleme mit Spring geladen. Es kann also keine neuen Methoden ohne erneute Implementierung laden. Versuchen Sie einige Zeilen innerhalb der Methode zu ändern. Ich denke, es würde gut funktionieren. –

+0

Ja, wenn ich den Körper der bestehenden Methode ändern, ist es in Ordnung. Ein kurzer Blick auf die gefederte Beschreibung hat meine Aufmerksamkeit erregt: "Im Gegensatz zu 'hot code replace', das nur einfache Änderungen erlaubt, sobald eine JVM läuft (zB Änderungen an Methodenkörpern), erlaubt Spring Loaded das Hinzufügen/Ändern/Löschen von Methoden/fields/constructors Die Annotationen für types/methods/fields/constructors können ebenfalls geändert werden, und es ist möglich, Werte in enum - Typen hinzuzufügen/zu entfernen/zu ändern. –

+0

Ich sehe in ihrer Dokumentation, dass Sie übergeben müssen "-noverify" Argument zur JVM, aber ich sehe das nicht in Ihrer JVM-Konfiguration. Es scheint nicht optional zu sein. – Gus

Antwort

1

Was ist Hot-Code ersetzen ?:

Hot Code ersetzen (HCR) ist eine Debug-Technik, bei der die Eclipse-Java-Debugger neue Klasse von Dateien über das Debug-Kanal auf eine andere JVM überträgt. Im Fall der Eclipse-Entwicklung gilt dies auch für die VM, auf der die Runtime-Workbench ausgeführt wird. Die Idee ist, dass Sie eine Debugging-Sitzung auf einer bestimmten Laufzeit-Workbench starten und eine Java-Datei in Ihrer Entwicklungs-Workbench ändern können. Der Debugger ersetzt den Code in der empfangenden VM, während er ausgeführt wird. Es ist kein Neustart erforderlich, daher der Verweis auf "heiß".

Wenn es funktioniert:

HCR funktioniert nur, wenn die Klassensignatur nicht ändert; Sie können beispielsweise keine Felder zu vorhandenen Klassen entfernen oder hinzufügen. HCR kann jedoch verwendet werden, um den Hauptteil einer Methode zu ändern. HCR wird nur auf 1.4.1-VMs und später oder unter Verwendung einer beliebigen Version der IBM J9 VM zuverlässig implementiert. J9 ist in IBM Produkten wie Websphere Studio Device Developer verfügbar.

Fehlerbehebung das Problem:

  1. Überprüfen Sie ausführen, um die Anwendung auf einem unterstützten VM (Anmerkung nehmen, dass die JVM, die Eclipse-ausgeführt wird, kann nicht die gleiche wie die JVM, die Ihre Java-Anwendung ausgeführt wird).

  2. Überprüfen Sie, ob das automatische Gebäude eingeschaltet ist. Stellen Sie sicher, dass "Projekt> Automatisch erstellen" aktiviert ist.

  3. Überprüfen Sie, ob auf dem Eclipse Tomcat Server die folgende Option ausgewählt ist.

    enter image description here

Referenzen: wiki.eclipse

+0

Das ist sehr informativ, aber nach dem SpringLoaded-Wiki sollte das Hinzufügen einer Methode mit springLoaded funktionieren, es sei denn, die auf der Site angegebenen Informationen stimmen nicht.https: //github.com/spring-projects/spring-loaded –

0

javaagent ist JVM-Option. So sollte es ohne Präfix übergeben werden. d. h. Sie benötigen

-javaagent:springloaded-1.2.5.RELEASE.jar -noverify