Ich habe mehrere Entwickler gesehen, die nach einer Lösung für dieses Problem gesucht haben: Zugriff auf Sitzungsinformationen aus einem anderen WAR (auch wenn sie sich in derselben EAR befinden) - hier einige Beispiele: Gibt es eine Möglichkeit, den Sitzungsstatus zwischen verschiedenen Anwendungen in Tomcat zu teilen? , Zugriffssitzung einer anderen Webanwendung , verschiedene WAR-Dateien, freigegebene Ressourcen , Tomcat: Wie kann ich Daten zwischen zwei Anwendungen austauschen? , Was macht das Attribut crossContext in Tomcat? Aktiviert es die Sitzungsfreigabe? und so weiter...
Nach allem, was ich gesucht habe, gibt es je nach Container einige spezifische Lösungen, aber es widerspricht irgendwie der Spezifikation . Ich habe auch die Java EE-Spezifikation durchgesehen, ohne Glück, eine Antwort zu finden.
Einige Entwickler sprechen über die Kopplung zwischen Webanwendungen, aber ich bin eher anderer Meinung. Was ist der Grund, warum man WARs innerhalb derselben EAR halten würde, wenn man nicht koppelt? Auf EJBs kann beispielsweise lokal zugegriffen werden (auch wenn sie sich in einer anderen EJB-JAR innerhalb derselben EAR befinden).
Insbesondere übernimmt eine meiner WARs die Authentifizierung und Autorisierung, und ich möchte diese Informationen mit anderen WARs (in derselben EAR) teilen. Ich habe es zuvor geschafft, ähnliche Probleme zu umgehen, indem ich WARs als JARs verpackt und in ein einzelnes WAR-Projekt (WEB-INF / lib) eingefügt habe. Diese Lösung gefällt mir jedoch nicht (sie erfordert einen enormen Aufwand bei der Benennung von Servlets usw.).
Und keine Lösung hat die erste (und wichtigste) Frage beantwortet: Warum können WARs keine Sitzungsinformationen austauschen?