ฉันได้เห็นนักพัฒนาหลายคนกำลังมองหาทางออกสำหรับปัญหานี้: การเข้าถึงข้อมูลเซสชั่นจากสงครามที่แตกต่างกัน (แม้ในภายใน EAR เดียวกัน) - นี่คือตัวอย่างบางส่วน: วิธีใดที่จะแบ่งปันสถานะเซสชันระหว่างแอปพลิเคชันต่างๆ , เซสชันการเข้าถึงของเว็บแอปพลิเคชันอื่น , ไฟล์ WAR ที่แตกต่างกัน, ทรัพยากรที่แชร์ , Tomcat: วิธีการแบ่งปันข้อมูลระหว่างสองแอปพลิเคชัน , อะไรแอตทริบิวต์ crossContext ทำใน Tomcat? เปิดใช้งานการแชร์เซสชันหรือไม่ และอื่น ๆ ...
จากทั้งหมดที่ฉันค้นหามีวิธีแก้ปัญหาเฉพาะบางอย่างขึ้นอยู่กับคอนเทนเนอร์ แต่อย่างใด ' ตรงกันข้ามกับข้อมูลจำเพาะ ' ฉันยังได้ดูข้อมูลจำเพาะ Java EE โดยไม่มีโชคในการหาคำตอบ
นักพัฒนาบางคนพูดถึงการมีเพศสัมพันธ์ระหว่างเว็บแอปพลิเคชัน แต่ฉันมักจะไม่เห็นด้วย อะไรคือเหตุผลที่ทำให้ WARs อยู่ใน EAR เดียวกันหากไม่ได้มีเพศสัมพันธ์? ตัวอย่างเช่น EJB สามารถเข้าถึงได้แบบโลคัล (แม้ว่าจะอยู่ใน EJB JAR อื่นภายใน EAR เดียวกัน)
โดยเฉพาะอย่างยิ่งหนึ่งใน WAR ของฉันจัดการกับการตรวจสอบและการอนุญาตและฉันต้องการแบ่งปันข้อมูลนี้กับ WAR อื่น ๆ (ใน EAR เดียวกัน) ฉันจัดการเพื่อแก้ไขปัญหาที่คล้ายกันก่อนหน้านี้โดยการบรรจุ WARs เป็น JARs และวางลงในโครงการสงครามเอกพจน์ (WEB-INF / lib) แต่ฉันไม่ชอบโซลูชันนี้ (ต้องใช้ความพยายามอย่างมากในการตั้งชื่อเซิร์ฟเล็ตและอื่น ๆ )
และไม่มีวิธีตอบคำถามแรก (และที่สำคัญที่สุด): ทำไม WAR ไม่สามารถแบ่งปันข้อมูลเซสชันได้