2016-08-19 4 views
0

Ich habe eine fragile Legacy-Anwendung, deren Struktur ich nicht ändern möchte. Es ist als EAR gebündelt, mit ein paar WAR-Anwendungen und einigen unterstützenden Gläsern.Gibt es eine Möglichkeit, einen Web-inf/lib-Klassenpfad zu einem eigenständigen Jar in einem Ohr hinzuzufügen?

Ich führe ein Load Time Weaving AOP ein, bei dem ein Aspekt eine Abhängigkeit von einem Jar im Ordner WAR/WEB-INF/lib hat.

Mein AOP-Jar befindet sich in meinem EAR/lib-Ordner.

Ich möchte nicht meine Webapp-Jar in den Ear/lib-Ordner verschieben, da dies andere Nebenwirkungen mit Eltern-zuerst-Classloading verursachen kann.

Gibt es eine Möglichkeit, das Manifest meines AOP-Jar zu verwenden und auf die Lib im War/WEB-INF-Ordner zu zeigen? Gibt es einen Weg, um den Classpath als so etwas wie

Class-Path: webapp.war/WEB-INF/lib/dependency.jar 

oder

Class-Path: webapp.war:WEB-INF/lib/dependency.jar 

Antwort

1

Nein, das ist nicht möglich, zu schreiben. Es könnte Hacks geben, um dies zu umgehen, aber es sieht im Allgemeinen nicht wie ein guter Designansatz aus. Sie könnten versuchen, den Aspekt, der eine Abhängigkeit von einer lib im Krieg hat, herauszuziehen und in diesen Krieg zu verschieben. Oder um nur die erforderliche Funktionalität aus dependency.jar zu extrahieren. Schwer zu sagen, ohne weitere Informationen.

+0

Danke für die Bestätigung. Das ist so ziemlich die Schlussfolgerung, zu der ich auch gekommen bin. –

Verwandte Themen