我有一个在Apache / Tomcat中运行的Java Web应用程序。 Web应用程序在最新的Chrome& Firefox构建,以及旧版本的Internet Explorer(IE),如IE 8.虽然在IE 11中应用程序失败。发生的错误如下:我登录到应用程序正常,但尝试导航到新页面时生成新会话,这意味着应用程序无法识别我已登录。通过打印会话ID,我可以看到id是如何不同的:
String sessID = request.getSession().getId();
System.out.println(sessID);
我已经阅读了一些文章,其中一些文章有解决方案。我看到列出了两个解决方案;一个用于Asp.NET应用程序(对我没帮助),另一个用于更改IE中的默认会话设置(这没有帮助):
Internet options > Privacy> Advanced> Override automatic cookie handling.
我已经检查了标头中的会话ID与getId所返回的内容,我可以看到值由于getId返回的值而发生变化,但标题没有变化;我不知道为什么会这样。
我收到以下两个错误(其中<File>
是违规文件):
Exception caught in <File> authenticate
java.lang.IllegalStateException: Cannot create a session after the response has been committed
Exception caught in <File> authenticate
java.lang.IllegalStateException: getAttribute: Session already invalidated
任何人都可以提供建议或向我推荐解决方案吗?
这篇文章很有用: java.lang.IllegalStateException: Cannot create a session after the response has been committed