问题标签 [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 投票
1 回答
527 浏览

jsf - JSF 2.1 + CDI 处理 ActionEvent 抛出 ViewExpiredException

我正在尝试运行我的网络应用程序的简单示例。我正在使用 JSF + CDI bean。

我的小脸:

我的 CDI 豆:

当我运行它时,网络浏览器显示带有值“12”和按钮的标签。如果我按下按钮 threse 是抛出异常

如果我使用@ManagedBean 而不是@Named 它可以正常工作(我的意思是按下按钮会导致在标签上添加“p”)。

我在 WEB-INF 中有 beans.xml 文件。

有谁知道我做错了什么?

0 投票
1 回答
1806 浏览

jsf-2 - 解决 ViewExpiredException 上的导航案例时出现 NullPointerException

我创建了一个自定义异常处理程序,它应该导航到ViewExpiredException.

但是,它会在行上引发以下异常nav.handleNavigation()

我正在使用 MyFaces 和 PrimFaces 3.4。

0 投票
1 回答
1607 浏览

jsf-2 - Session Expired 和 ViewExpiredException 之间的区别

对于这两个“巨大”问题,我遇到了许多解决方案

  • 会话已过期
  • 查看过期异常

我的问题:它们之间有什么区别?

我正在使用 WAS,我观察到

  • 在控制台中重启 EAR 不会导致会话过期
  • 如果当前有 ajax 请求并且 EAR 重新启动,它会抛出 ViewExpiredException 但不会注销用户
  • 如果页面空闲 30 分钟,则会出现登录屏幕(我使用了 sessiontimeoutfilter 来处理这个问题)

那么 ViewExpiredException 和 Session Expiry 不一样吗?另外为什么不重新启动 EAR 会导致会话过期?

任何帮助,将不胜感激。

0 投票
1 回答
6112 浏览

jsf - 意外错误转发或重定向到登录页面

我有一个 JSF 应用程序在 GlassFish 3.1.2.2 上运行,带有 Mojarra 2.1.21 和 OmniFaces 1.4.1 来处理 Ajax 错误。该应用程序具有受保护区域和公共区域,使用基于表单的身份验证(在 JSF 表单上)和编程登录。

当用户单击受保护页面上的命令按钮时,我总是会得到一个空白页面,该页面由底层ServletException:意外错误转发或重定向到登录页面引起。

如果我错了,请纠正我,但从日志来看,这似乎是由于 Web 容器转发到 login.xhtml 但仍在尝试恢复旧视图 - 最终以 ViewExpiredException 包装成 ServletException,所以没有错误-web.xml 中定义的页面可以匹配和显示。这是一个例外:

我已经尝试了几个小时来捕捉它,但无济于事:

  • 添加faces-redirect=true到登录页面配置没有效果,因为它不是结果
  • 添加 servlet 过滤器以捕获 rootCause 不起作用,因为容器管理的安全性在过滤器之前启动,如另一篇文章所述
  • 使login.xhtml无状态(通过<f:view transient = "true">)没有帮助,因为 Faces Servlet 试图恢复的是过期页面的视图。

从 StackOverflow 上的众多帖子中,我知道有几个选项:

  • 使登录页面成为非 JSF 页面,但我真的想要登录页面上的一些动态数据
  • 使用自定义错误处理程序,它有效,但它覆盖了 OmniFaces 的 FullAjaxException 处理程序,并且不再尊重 web.xml 中的错误页面声明

我想知道的是有没有其他方法可以优雅地处理这个异常?允许转发到登录页面或显示错误页面。(FullAjaxExceptionHandler 的非 Ajax 等价物将是完美的!)

提前谢谢了。

我的 web.xml:

0 投票
1 回答
2754 浏览

login - 为什么登录页面的jsf-spring webapp会出现ViewExpiredException/IllegalArgumentException?

我有一个带有 frameowrks JSF (Primefaces)、Spring、Spring Security、PrettyFaces 和 Mybatis 的 webapp。Webapp 有一个登录页面作为索引页面。第一次部署 webapp 并且我尝试登录时发生 IllegalArgumentException 或 ViewExpiredException 取决于 jsf 版本。这些异常分别发生在 jsf 版本 2.1.3 和 2.1.0

错误消息 IllegalArgumentException

错误信息 ViewExpiredException

虽然我可以在 faces-config 文件中添加 exception-handler-factory 来解决这个问题,但我很惊讶会发生这些异常,因为据我所知,这只会在会话过期时发生,但如果我只是部署应用程序,怎么可能会话到期?

PD:Primefaces 3.5、Spring 3.1.1、Spring Security 3.1.3、PrettyFaces 3.3.3、Mybatis 3.1.1 Tomcat 6.0.10

web.xml

0 投票
1 回答
1763 浏览

jsf - jsf视图过期意味着会话被破坏?

我有个问题 :

当 jsf 视图过期时,我们是否可以确定会话被销毁并且其所有属性都被删除?

谢谢你回复我。

0 投票
0 回答
260 浏览

jsf - 无法通过配置为 ViewExpiredException 错误页面的登录页面登录

在 PrimeFaces 会话过期后,我使用omnifaces 来处理重定向问题,并且效果很好。问题是当我在会话超时发生后尝试重新登录并将我引导到登录页面时,我遇到了以下错误。

单击 F5 或重新加载错误消失的页面后,它会将我引导到主页。问题是我在会话到期后遇到此错误,当我单击 ajax 按钮时,它会引导我登录页面。在我写下用户名/密码并单击登录按钮后,我遇到了以下错误。

如果你能帮助我,我会很高兴。

阿贾克斯回应:

faces-config.xml

web.xml

0 投票
0 回答
240 浏览

jsf - 注销和页面过期浏览器信息

我是 Java EE 和 JSF 的新手。我正在尝试创建登录系统,但是当用户注销时,后退按钮出现问题。为了解决这个问题,我按照我在 stackoverflow 上找到的其他几个主题中的建议创建了一个过滤器,它看起来像这样:

现在页面没有被缓存。在每个页面上都调用了如下所示的身份验证函数:

因此,当管理员未登录时,应用程序会将我重定向到登录页面(现在它仅适用于一个名为 admin 的用户就足够了)。

问题是当管理员注销并使用后退按钮时,会出现一个特定于浏览器的网页,其中包含有关过期网页的信息,目前有两种情况:

1)用户已登录,当他点击刷新时页面正常显示。

2)用户已注销,当他再次点击刷新或使用后退按钮时,将抛出javax.faces.application.ViewExpiredException然后用户将被重定向到登录页面(/root/start - 我在我的 web.xml 中配置了它)。

我想要做的就是跳过有关过期网页的浏览器信息 - 已注销的用户必须在使用后退按钮后立即重定向到登录页面,并且登录用户可以正常使用后退按钮而不会收到有关过期页面的警告。初学者可以实施的任何解决方案(如果有的话)?

0 投票
2 回答
10841 浏览

jsf - 当我使用 @ViewScoped 时出现 ViewExpiredException

我的 h:commandButton "Login" 有问题:当我使用 @ViewScoped 并按下此按钮时,会出现 ViewExpiredException,但是当我使用 @SessionScoped 时,没有任何错误。

堆栈跟踪:

我的页面:

这是我的 RegisterController 类:

0 投票
1 回答
436 浏览

jsf - 重定向 ViewExpiredException 为 Seam 2.2.0 传递页面参数

对于Seam 应用程序,我在重定向视图上遇到pages.xml 中的ViewExpiredException(会话超时)后尝试传递页面参数,但是当浏览器重定向到视图时它们被丢弃。

页面参数实际上是动态的,页面将根据页面参数显示文本,但为简单起见,我将参数保持为静态(现在)。

有什么办法吗?