IntellJ Idee tomcat-Hot-swap failed: schema-änderung nicht implementiert Vorgang wird nicht unterstützt durch VM
Bekam ich diese Fehlermeldung, wenn ich versuche neu zu laden-Klasse (hot-swap) mit geänderten Methode Körper, in mein Projekt. Bevor alles einwandfrei funktioniert, doch plötzlich Stoppt es, und ich erinnere mich nicht, nichts, was könnte eine Ursache sein. Was ist seltsam, ich habe ein anderes Projekt mit der gleichen Einstellung und hot-swap-Methode für Körper funktioniert.
Hier ist die Konfiguration für NICHT-arbeiten Projekt:
Und mein VM-Einstellungen:
-XX:PermSize=512m
-XX:MaxPermSize=1024m
-Xms1024m
-Xmx2048m
-Dcatalina.home="C:\Programy\apache-tomcat-7.0.57"
-Djava.endorsed.dirs="C:\Programy\apache-tomcat-7.0.57\endorsed"
-javaagent:C:\Programy\apache-tomcat-7.0.57/lib/spring-instrument-3.1.2.RELEASE.jar
-Dspring.profiles.active=closeMonthTest
-Dnpk.jobs.enabled=true
und hier ist die Konfiguration für meinen arbeiten Projekt:
VM-Optionen:
-XX:PermSize=512m
-XX:MaxPermSize=1024m
-Xms1024m
-Xmx2048m
-Dcatalina.home="C:\Programy\apache-tomcat-7.0.57"
-Djava.endorsed.dirs="C:\Programy\apache-tomcat-7.0.57\endorsed"
-javaagent:C:\Programy\apache-tomcat-7.0.57/lib/spring-instrument-3.1.2.RELEASE.jar
-Dspring.profiles.active=test
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es sehr schwierig, die Ursache ohne code. Allerdings kann ich schreiben Sie eine künstliche Fall, wo der Java-compiler erstellen, synthetische Methoden, auch wenn ich nur ändern Sie die Methode Körper:
Dieser Effekt erklärt sich durch eine synthetische Methode access$000, die javac erzeugt zu ermöglichen, Zugang zu einem privaten Mitglied der Inneren Klasse.
Ändern wir die Reihenfolge der beiden Methoden in der main:
Als Folge der compiler geändert hat, die Methoden-Signaturen.
Vom HotSwap-Sicht ist diese Veränderung ist untersagt, da die Signatur der Methode
access$000
geändert wurde.