[英]Using http session in Stateless Session Bean via @Context
我創建了一個向用戶顯示文檔的Web應用程序。 該應用程序使用RESTFUL Web服務從后端獲取此文檔。
負責創建/加載文檔的EJB需要一些存儲在http會話中的信息。 (需要確定打開文檔的時間,加載所需的時間等),會話中存儲的數據可以確定關閉或更新了哪個瀏覽器窗口中的哪個文檔)
我獲取此信息的解決方案如下所示(在SSB和另一個SSB的攔截器中):
@Context
private HttpServletRequest request;
...
this.request.getSession().getAttribute(WINDOW_SET);
此解決方案正在工作。 我不確定這是否是“正確的方法”,因為據我到目前為止研究,@ Context並不是真正用於EJB。
我不能僅將所需的信息作為參數傳遞給EJB,因為這與所使用的Interceptor不兼容。
問題是:這是構建此功能的有效方法嗎? 如果不是,此解決方案的缺點是什么?如何更好地解決?
不會。Bean被注釋為無狀態:它必須是無狀態的。 您不能指望注入請求或會話甚至可以正常工作。
“無狀態會話bean”的實際含義是另一個問題,這是我自1998年以來就一直在思考的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.