我创建了一个向用户显示文档的Web应用程序。 该应用程序使用RESTFUL Webservices从后端获取此文档。
负责创建/加载文档的EJB需要存储在http会话中的一些信息。 (需要确定文档已打开多长时间,加载时间等等,会话中存储数据以确定关闭或更新哪个浏览器窗口的文档)
我获取此信息的解决方案看起来像这样(在SSB和另一个SSB的拦截器中):
@Context
private HttpServletRequest request;
...
this.request.getSession().getAttribute(WINDOW_SET);
此解决方案正在运行。 我不确定这是"正确的方式"要做到这一点,因为直到现在我研究的@Context并不真正意味着在EJB中使用。
我不能只将所需信息作为参数传递给EJB,因为这对使用的Interceptor不起作用。
问题是: 这是构建此功能的有效方法吗? 如果没有,这个解决方案的缺点是什么,如何做得更好?
答案 0 :(得分:0)
没有。豆被注释为无国籍:它必须是无国籍的。您不能指望注入请求或会话甚至工作。
“无国籍会话bean”实际意味着什么是另一个问题,也是我自1998年以来一直在思考的问题。