Ich entwickle eine Spring MVC-Anwendung mit ActiveJDBC als ORM, einem Tomcat-Server und IntelliJ als meine IDE.Problem mit Post-Compile-Phasenänderungen in Artefakt, das auf Tomcat bereitgestellt wird
Für die erforderliche Funktionalität benötigt ActiveJDBC eine gewisse Byte-Code-Manipulation - genannt Instrumentierung durch das ORM - von kompilierten Klassen. Nach der Kompilierphase werden den kompilierten Klassen also statische Methoden hinzugefügt. Das ist alles in Ordnung, aber wenn ich versuche, ein Artefakt meiner Webanwendung in Tomcat zu implementieren, enthält der WAR die kompilierten Klassen , bevor die Byte-Manipulation (Instrumentierung) aufgetreten ist.
Um die kompilierte Ausgabe Beitrag der Instrumentierung von ActiveJDBC erforderlich sind, habe ich versucht:
das Artefakt Erstellen von> Projektstruktur Datei navigieren und dann die kompilierte Klasse manuell einschließlich, die die Methoden hinzugefügt über Instrumentierung enthalten. die Artefakt Bereitstellen obige Ergebnissen in den folgenden Fehlern beschrieben:
The origin server did not find a current representation for the target
resource or is not willing to disclose that one exists.
Wenn ich stattdessen das Hauptmodul der Kompilierung Ausgang verwenden, ich die Anwendung auf dem Browser zugreifen kann, sondern erhalten einen 500-Fehler auf Seiten, auf denen die Quellcode ruft Methoden auf, die mit der Instrumentierung zur Verfügung gestellt werden (eine Post-Compile-Task).
Meine Fragen: 1) Zum Erstellen eines Artefakts, das bereitgestellt werden soll, ist es erforderlich, die Kompilierausgabe des Hauptmoduls zu verwenden? 2) Wie schließe ich nach der Kompilierung Phasenänderungen in das Artefakt ein, wenn das Artefakt die Kompilierung des Hauptmoduls enthält?