Tôi đã thấy một số nhà phát triển đang tìm giải pháp cho vấn đề này: truy cập thông tin phiên từ một WAR khác nhau (ngay cả khi trong cùng một EAR) - đây là một số mẫu: Có cách nào để chia sẻ trạng thái phiên giữa các ứng dụng khác nhau trong tomcat không? , Phiên truy cập của một ứng dụng web khác , các tệp WAR khác nhau, tài nguyên được chia sẻ , Tomcat: Làm thế nào để chia sẻ dữ liệu giữa hai ứng dụng? , Thuộc tính crossContext làm gì trong Tomcat? Nó có cho phép chia sẻ phiên không? và như thế...
Từ tất cả những gì tôi đã tìm kiếm, có một số giải pháp cụ thể tùy thuộc vào container, nhưng nó bằng cách nào đó ' trái với đặc điểm kỹ thuật '. Tôi cũng đã xem qua đặc tả Java EE mà không gặp may mắn trong việc tìm câu trả lời.
Một số nhà phát triển nói về việc ghép nối giữa các ứng dụng web, nhưng tôi có xu hướng không đồng ý. Lý do nào khiến người ta giữ WAR trong cùng một EAR nếu không khớp? Ví dụ, các EJB có thể được truy cập cục bộ (ngay cả khi bên trong một JAR EJB khác trong cùng EAR).
Cụ thể hơn, một trong những WAR của tôi xử lý xác thực và ủy quyền và tôi muốn chia sẻ thông tin này với các WAR khác (trong cùng EAR). Tôi đã xử lý các vấn đề tương tự trước đây bằng cách đóng gói các WAR dưới dạng JAR và đưa chúng vào một dự án WAR đơn lẻ (WEB-INF / lib). Tuy nhiên, tôi không thích giải pháp này (nó đòi hỏi một nỗ lực rất lớn trong việc đặt tên servlet, v.v.).
Và không có giải pháp nào trả lời được câu hỏi đầu tiên (và quan trọng nhất): Tại sao WARs không thể chia sẻ thông tin phiên?