【问题标题】:Session was invalidated on firefox private window会话在 Firefox 私人窗口上无效
【发布时间】:2016-05-11 07:58:36
【问题描述】:

我正在测试环境中测试一个 Web 应用程序,当我尝试从 Firefox 上的私人窗口打开它时,返回一个空白页面,并且日志显示:

java.lang.IllegalStateException: Session was invalidated
16/02/02 14:45:17   at com.evermind.server.http.EvermindHttpSession.getId(EvermindHttpSession.java:467)
16/02/02 14:45:17   at cm.listener.SessionListener.sessionCreated(SessionListener.java:14)
16/02/02 14:45:17   at com.evermind.server.http.HttpApplication.createSession(HttpApplication.java:1971)
16/02/02 14:45:17   at com.evermind.server.http.EvermindHttpServletRequest.unprivileged_getSession(EvermindHttpServletRequest.java:2772)
16/02/02 14:45:17   at com.evermind.server.http.EvermindHttpServletRequest.getSession(EvermindHttpServletRequest.java:2661)
16/02/02 14:45:17   at com.evermind.server.http.EvermindHttpServletRequest.getSession(EvermindHttpServletRequest.java:2655)
16/02/02 14:45:17   at utilities.AdsServerFilter.doFilter(AdsServerFilter.java:39)

抛出异常的行如下:

HttpSession session=httpRequest.getSession();

应用程序的生产版本在私人窗口上运行良好..

据我所知,私人窗口只提供一个新的私人会话,如果没有找到现有会话,httpRequest.getSession() 也会返回一个新会话......有什么帮助吗?

我使用的是 firefox 26(我无法对其进行更新以使其继续支持 GWT 扩展)

【问题讨论】:

    标签: java session firefox gwt web-applications


    【解决方案1】:

    这与 GWT 无关,但它是 servlet 会话工作方式的一部分,如果您尝试使会话无效,然后在同一个请求中返回使用它。

    从 HttpSession 的 javadoc(可在 https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/HttpSession.html 等其他地方获得),invalidate() 方法几乎破坏了会话上调用的任何其他方法,包括它自己:

    无效

    公共无效无效()

    使该会话无效,然后解除绑定到它的所有对象。

    抛出: java.lang.IllegalStateException - 如果在已经失效的会话上调用此方法

    您可以从堆栈跟踪中看到,由于尝试创建会话,OC4J 服务器内部的某些东西正在会话上调用getId()。这个方法也有同样的例外:

    获取ID

    公共 java.lang.String getId()

    返回一个字符串,其中包含分配给此会话的唯一标识符。标识符由 servlet 容器分配,并且依赖于实现。

    返回: 指定分配给此会话的标识符的字符串

    抛出: java.lang.IllegalStateException - 如果在无效会话上调用此方法

    现在的问题是“为什么您的会话已经失效?” - 您是否还在同一请求中的代码中的其他位置调用了 invalidate ?或者 OC4J 中是否存在无法为私有浏览器创建新会话的错误?

    【讨论】:

      猜你喜欢
      • 2016-04-07
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 2013-12-23
      • 2011-01-28
      • 1970-01-01
      • 2016-05-30
      • 1970-01-01
      相关资源
      最近更新 更多