Wir haben mehrere Webapps auf einem WebSphere-Anwendungsserver implementiert, wobei beide Anwendungen den ImageIO von Standard-Java verwenden, aber eine zusätzliche Bibliothek, um weitere Leser hinzuzufügen/Schriftsteller.Wie Sie eine Instanz von javax.imageio.spi.IIORegistry mit korrektem Gültigkeitsbereich erhalten
Die Frage ist jetzt, verwenden beide Anwendungen IIORegistry.getDefaultInstance()
, um die Instanz der Service-Registrierung zu erhalten, und beide Anwendungen scheinen die gleiche Instanz zu erhalten. Intern ist dies mit AppContext.getAppContext()
verbunden, die denselben awt AppContext zurückgeben. Gibt es eine geeignete Möglichkeit, mehrere WebSphere-Anwendungen mit ImageIO of Java zu betreiben, ohne sich um beide Apps kümmern zu müssen, die dieselben Bibliotheken verwenden? Muss ich manuell einen AppContext für meine WebSphere-Anwendungen erstellen?
Danke für die Antwort, und in der Tat, die Absicht wäre, die Plugins einer Web-App von der anderen zu verstecken. Unerwünschte NoClassDefFoundErrors verhindern, dass die andere Seite richtig funktioniert, also müssen beide Webapps den gleichen Satz von Bibliotheken teilen (machbar, aber irgendwie seltsam) oder es muss eine Möglichkeit geben, eine zweite Webanwendung von einer anderen zu verstecken. –
@ThomasW Ich denke, der einfachste Weg, dies zu erreichen, besteht darin, einfach mehrere WebSphere-Instanzen auszuführen, eine für jede Webanwendung. – haraldK
@ThomasW Wenn ich darüber nachdenke, könnte es innerhalb desselben Containers möglich sein. Es erfordert jedoch eine Möglichkeit, WebSphere so zu konfigurieren, dass eine 'ThreadGroup' pro Web-App-Kontext verwendet wird. Ich bin mir nicht sicher, ob das möglich ist? In jedem Fall habe ich einen schnellen PoC geschrieben, um zu beweisen, dass verschiedene Thread-Gruppen tatsächlich unterschiedliche "IIORegistry" -Instanzen wie dokumentiert erhalten. – haraldK