问题标签 [viewexpiredexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
13009 浏览

java - javax.faces.application.ViewExpiredException 看似被忽略

我已将以下内容放入我的 web.xml:

当我启动我的应用程序并等待 1 分钟时,如果我尝试与之交互(JSF 1.2,h:commandButton)我收到错误

有人能告诉我为什么它javax.faces.application.ViewExpiredException没有被捡起吗?我正在寻找最基本的到期设置,当然这就是网络描述符中所必需的。

谢谢

编辑

我现在在我的 web.xml 中有以下内容:

(这些条目是 web.xml 中的最后一个过滤器条目)和一个带有 doFilter 方法的新过滤器,如本文所述。现在应该发生的是rootCause应该解开 ViewExpiredException ,从而expiredIndex在 servlet 会话超时时将用户重定向到我的页面。相反,我得到了 500。我看不出在这种情况下我还需要做什么才能进行正确的重定向。帮助!

编辑 2

来自 500 的错误是:

我想这是标准的。

0 投票
1 回答
82371 浏览

jsf - 如何在 JSF 2 中处理会话过期和 ViewExpiredException?

考虑以下场景。在会话超时(过期)后,我正在单击 JSF 表单的提交按钮。浏览器显示一些异常消息:

ViewExpiredException:无法恢复视图上下文

我想要做的是,在会话过期后自动重定向到网站的主页。这样做的机制是什么?任何帮助将非常感激。

0 投票
1 回答
2503 浏览

security - 使用 Java EE 6 干净地处理会话超时

我在 GlassFish 3.0.1 中部署了一个相当简单的 Web 应用程序。我正在使用常规的基于 FORM 的身份验证,并使用 JDBC 领域保护应用程序。视图由 JSF 2 使用 Facelets 处理。

我遇到的问题是,当会话到期时,如果用户单击 ah:commandButton 或其他任何回发的内容,则会出现一个可怕的黄色页面,告诉他们存在 XML 解析错误。在日志中,我得到三个堆栈跟踪:

我似乎找不到一种干净简单的方法来处理这个问题。我尝试在 web.xml 中为 ViewExpiredException 设置错误处理程序,但它从未被调用。我猜系统已经被第一个异常放弃了。现在我真的不太在乎在这种情况下我将用户发送到哪里,只要他们没有看到死亡黄页!

注意:非回发链接可以正确查找并重定向到登录页面。

0 投票
2 回答
3939 浏览

java - javax.faces.application.ViewExpiredException:无法恢复视图

我已经使用 jsf、prettyfaces 和 hibernate 创建了这个网页,我环顾四周,大多数人说这个错误是因为缓存他们中的大多数人在登录后发现了这个错误,注销并尝试重新登录,但是我在登录时发现了这个错误,当我尝试导航到任何其他页面时,我单击的任何链接都会产生此错误

更难的是,有时当我尝试重新启动服务器,重新登录时,每次都不会发生此错误,一切正常但有时当此错误再次发生时,我尝试重新启动服务器并尝试重新登录。同样的错误仍然发生

0 投票
1 回答
4170 浏览

jsf - 升级到 jsf2 后的 ViewExpiredException

我们最近将一个主要平台从 jsf 1.2 升级到 2.0。升级后,我们每小时都会收到几个 ViewExpiredException 错误。从阅读该主题来看,这似乎是会话到期时的预期异常,但是我们已经查看了访问日志,即使在某些情况下请求仅相隔 5 分钟,我们也会收到这些异常。

我的问题如下:

1) 除了会话过期,还有哪些其他情况可能导致 ViewExpiredException?

2) 我们记录的异常不包含有关导致异常的确切条件的详细信息(会话丢失、会话损坏、无法恢复特定组件)。有没有办法引入额外的日志记录来找出在每种情况下触发此异常的非常具体的情况?

Mojarra 2.0.4-b09 Tomcat 6 使用 Memcached 会话管理器进行会话复制

任何帮助表示赞赏。谢谢!

0 投票
1 回答
6216 浏览

ajax - javax.faces.application.ViewExpiredException 和错误页面不起作用

我设置我的网络应用程序如下:

以便在抛出 viewExpiredException 时显示上述错误页面。

但是,当我重新启动服务器并在“左开”页面上提交 ajax 请求时,控制台中会抛出异常并且我的错误页面不会显示。

这是来自控制台的堆栈跟踪:

有人有任何线索吗?

在此先感谢,J。

0 投票
1 回答
3912 浏览

java - JSF 2.0 自定义异常处理程序 - ViewHandler 未在 Weld 应用程序中重定向

每当发生特定异常时,我都会使用Ed Burns 建议的自定义异常处理程序来显示错误页面。我也尝试在上下文不活动时显示错误页面。但是,这部分(第 45./46 行)会引起麻烦:

完整的 CustomExceptionHandler 来了(如 Ed Burns 在他的博客中建议的那样正确配置)

但是,我总是在控制台中打印出“无法呈现视图”。那么为什么它不呈现该错误页面。我认为这是由非活动上下文(由 NavigationHandler 使用)引起的!

任何人都可以确认这种行为吗?

PS:我正在使用 Weld 1.1 和 Mojarra 2.0.4

0 投票
1 回答
3036 浏览

jsf - 在会话失效后单击浏览器后退按钮时防止 ViewExpiredException

我想弄清楚如何在 Glassfish 3.1 中的 JSF 登录表单上防止会话固定。使用Servlets很容易做到,所以我尝试对 JSF 做同样的事情(基于这个问题:Retrieving session ID value from a JSF request):

它似乎有效,但是当我单击浏览器的后退按钮并重新输入登录详细信息时,我得到:

javax.faces.application.ViewExpiredException: viewId:/index.xhtml - 无法恢复视图 /index.xhtml。

它只有在“刷新”并重新发送后才能再次工作。

这可能是什么原因?

0 投票
2 回答
3340 浏览

java - 从 JSF 1.2 迁移到 JSF 2.0 后,每次导航都出现 ViewExpiredException

我正在尝试将现有的 JSF 应用程序从 JSF 1.2 迁移到 JSF 2.0。我使用的是 MyFaces 1.2.8 并想使用 MyFaces 2.0.5。

我在使用 MyFaces 2.0.5 时遇到的是最初请求的页面将正确呈现,但任何导航到另一个页面的尝试都会导致ViewExpiredException. 消息是:

找不到视图标识符的已保存视图状态:/SomePageName.jsf(其中“SomePageName”是我要离开的页面的名称)

如果我手动键入要导航到的页面的 Faces 友好 URL,例如http://localhost:8080/MYAPP/SomeOtherPage.jsf,那么其他页面将正确呈现。该应用程序还识别出我已经有一个会话并且不会尝试创建一个新会话。

我的应用程序完全由 JSP 文件组成,正如您对 JSF 1.2 应用程序所期望的那样。我的意图是首先让应用程序在 JSF 2.0 中运行,然后将每个页面一次重写为一个 Facelet。

我的一些导航规则如下所示:

有些看起来像这样:

(我意识到 REFRESH 结果不是做事的最佳方式,但这已经在旧的 1.2 应用程序中,我不打算在开始迁移工作之前将其删除)

谁能告诉我我可能做错了什么会导致导航像这样爆炸?

0 投票
2 回答
2352 浏览

session - JSF 2 会话 Bean 问题

我有一个使用多个会话 Bean 运行的 JSF 2.1 (MyFaces) 应用程序(所有 bean 都是会话 bean)。超时在 web.xml 中定义如下:

转换为 1 小时。

问题是在正常使用中我得到了No Saved View...异常:

bean 目前在 faces-config.xml 中定义,以便与 Eclipse 的 ide 兼容。

我不确定是什么原因造成的,而且绝对不会超时。任何想法可能是什么问题?

如果我可以提供任何进一步的信息,请告诉我..

谢谢!

PS - 没有jsf-2.1标签

更新 1我只是想 60 意味着 1 分钟!:-) 这可能是问题所在。如果结果是这样,我会结束这个问题

更新 2不是这样......更多信息可能会有所帮助:

  1. 虽然错误是专门针对 的/mainPanel.jsf,但这实际上是 xhtml 使用的组合<ui:include>
  2. 仅当我单击应用程序中的一个特定点时才会发生这种情况。作为点击结果运行的代码是:

Jquery代码:

JSF 2代码: