Tag: 有状态

Java:跟踪用户登录会话 – 会话EJB与HTTPSession

如果我想使用我的Web应用程序跟踪每个客户端的会话状态,那么更好的选择 – 会话Bean还是HTTP会话 – 要使用? 使用HTTP会话: //request is a variable of the class javax.servlet.http.HttpServletRequest //UserState is a POJO HttpSession session = request.getSession(true); UserState state = (UserState)(session.getAttribute(“UserState”)); if (state == null) { //create default value .. } String uid = state.getUID(); //now do things with the user id 使用Session EJB: 在ServletContextListener的实现中,在WEB-INF/web.xml注册为Web应用程序侦听器: //UserState NOT a POJO this […]

使用Servlet正确使用有状态Bean

我们目前有一个注入Servlet的有状态bean。 问题是有时我们得到一个Caused by: javax.ejb.ConcurrentAccessException: SessionBean is executing another request. [session-key: 7d90c02200a81f-752fe1cd-1] Caused by: javax.ejb.ConcurrentAccessException: SessionBean is executing another request. [session-key: 7d90c02200a81f-752fe1cd-1]在有状态bean上执行方法时。 public class NewServlet extends HttpServlet { @EJB private ReportLocal reportBean; protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(“text/html;charset=UTF-8”); PrintWriter out = response.getWriter(); try { String[] parameters = fetchParameters(request); out.write(reportBean.constructReport(parameters)); } finally […]