问题标签 [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 回答
3617 浏览

jsf - 对象不支持此属性或方法与 primefaces omnifaces 超时组合

设置:JSF、PrimeFaces 3.2、Omnifaces 1.1、JBoss AS 7.1.1、Final、Mojarra 2.1.7

我有一个简单的页面(如下所列),并且我已经设置了omnifaces 来处理ajax 调用的ViewExpiredExceptions。当下面列出的页面过期并且我单击 IE8 上的 primefaces 按钮 (ajax) 时,将显示过期的错误页面,但出现以下 javascript 错误:

消息:对象不支持此属性或方法,行:1 字符:5500 代码:0 URI:blah blah/mywebapp/javax.faces.resource/primefaces.js.xhtml?ln=primefaces&v=3.2

它似乎不会在其他浏览器上产生错误。

我的页面(home.xhtml):

超时错误页面:expired.xhtml

模板 layout.xhtml

Web.xml 包括以下内容:

当我在过期后单击第二个按钮时,过期页面显示没有 javascript 错误。

有任何想法吗?

0 投票
0 回答
967 浏览

jmeter - 使用 JMeter 测试 JSF 应用程序

我正在尝试为 JSF 应用程序执行测试脚本。

我已按照以下链接中的步骤操作:
wiki.apache.org/myfaces/PerformanceTestingWithJMeter

我的脚本正在浏览 5 页。问题是我可以毫无问题地加载所有 4 个页面,但是我得到一个页面的视图过期异常。

结构

线程组

0 投票
1 回答
756 浏览

jsf-2 - ViewExpiredException - 为什么不同的行为?

我有一个 JSF 2 应用程序并配置了以下内容web.xml

@SessionScoped出于测试目的,我在一个带有注释的 init 方法中的类中有以下代码,@PostConstruct以便让会话快速过期:

现在,当我有一个h:commandButtonwithoutcome = "somepage.jsf"然后在 5s 之后单击将重定向到错误页面。

当我改为调用一些 bean 操作或使用属性将页面名称放在同一个按钮上时action,我会ViewExpiredException在服务器日志中看到 ,但不会发生重定向。

为什么呢?以及在会话过期后发生的任何操作,通常如何重定向到另一个页面?

0 投票
0 回答
459 浏览

jsf-2 - 会话过期时 RenderResponsePhase 上的 JSF2.0 NPE(viewRoot 为空)

我的应用程序使用 JSF 2.0.6 和 RichFaces 4.1.0。我实现了一个 ExceptionHandler,它通常在弹出窗口中显示所有异常,并且工作正常。

但是当我使用此上下文参数禁用部分状态保存时出现问题:

或者这个:

当会话过期时,我在应用程序中执行的任何操作都会引发 NullPointerException :

com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:96) com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl. java:139) javax.faces.webapp.FacesServlet.service(FacesServlet.java:509)

我查看了 RenderResponsePhase.java:96 它对应于:

事实上, viewRoot 是 null !

当启用部分状态保存或会话未过期时,这永远不会发生。

由于某些原因,我需要激活完整状态保存选项,但我不知道如何在会话过期时正确处理错误。我想这是一个 JSF 错误,我想在我的网络应用程序上修复它。

附加信息:服务器:Tomcat 6.0.18

0 投票
1 回答
965 浏览

ajax - 如果 JSF 页面受 j_security_check 保护,则不会在 ajax 请求上引发 ViewExpiredException - 跟进

ViewExpiredException not throw on ajax request if JSF page is protected by j_security_check提供了登录页面为 JSF 页面时的解决方案。但是如果登录页面是 JSP 页面呢?

我有一个jsp登录页面:

在我的 JSF 页面(facelet)中,如果我单击非 Ajax 按钮,我将被重定向到 login.jsp。如果我单击 Ajax 按钮,它将保留在同一个 JSF 页面上。但是,在这两种情况下,我添加到 JSP 登录页面的调试代码都将显示在控制台中。

===

我使用 facelet 而不是 jsp 重写了登录页面

我添加了一个 AjaxLoginListener:

一旦我使用 facelet 而不是 jsp,我就能够调用侦听器。但是,它永远不会进入登录页面,因为 originalURL (RequestDispatcher.FORWARD_REQUEST_URI) 对于 Ajax 请求始终为 NULL。做错了什么?

0 投票
0 回答
1536 浏览

web-applications - Glassfish 服务器会话无效

我已经在 Glashfish 3.2.1 上部署了我的 Web 应用程序。我在 web.xml 中将会话超时设置为 30 分钟。我的应用程序有一个登录页面,一旦此用户通过身份验证(检查密码),登录就会继续加载网页。尽管用户通过了身份验证,但单击登录按钮只会导致 sessiona 无效 :( 我可以看到会话详细信息丢失了。为什么会这样?我应该在我的 firefox 浏览器中设置一些东西吗?如果没有,我该如何防止这种情况发生?

提前致谢

请在此处查看我提到代码的帖子: Server page redirected to Filer before Login

0 投票
2 回答
7591 浏览

jsf-2 - 处理 ViewExireException/ajax 并显示 Primefaces 对话框

我不会将我的用户重定向或转发到另一个页面。所以当 my SessionExpiredExceptionHandler(extends ExceptionHandlerWrapper) 处理 ViewExireException 时。我希望用户留在同一页面上并显示 PrimeFaces 对话框。用于通知会话已过期并且用户需要再次登录(基于对话框)。我使用 Servlet 3.1 功能来登录/注销用户,并Basic/file使用 auth-method 将用户映射到不同的系统角色。

现在发生的是视图/页面在 2 分钟后刷新,但会话没有失效。仅在 4 分钟后页面刷新时第二次发生。

编辑: 由元标记刷新:

当异常第一次发生时,如何SessionExpiredExceptionHandler使会话对象(Servlet 注销)无效,以及如何在客户端调用 JavaScript(expireDlg.show())以显示 PrimeFaces 对话框?

我查看了其他一些线程,但没有找到可行的解决方案。 会话超时

SessionExpiredExceptionHandler

web.xml

0 投票
1 回答
1184 浏览

jsf-2 - 处理 ViewExpiredException(JSF 2.1、Seam2、Primefaces 3.4.1、Omnifaces 1.3)

我在尝试使用框架 JSF 2.1、Seam 2.3、Primefaces 3.4.1、Omnifaces 1.3 正确处理 ViewexpiredException 时遇到了可怕的问题。

在这里你可以看到我在 primefaces 论坛上发布的问题的完整解释:http: //forum.primefaces.org/viewtopic.php? f=3&t=28215

在这篇文章中,我被告知要尝试全脸(我现在正在尝试这样做)。所以我在我的项目中配置它(不确定是否正确)。

我将此添加到我的 faces-config.xml 中:

一切似乎都正常,FullAjaxExceptionHandlerFactory 似乎试图处理异常并尝试重定向到登录页面(请参阅我在 primefaces 论坛上的最后一篇文章)但应用程序被冻结并且没有真正发生,我不太确定我是否做了错误什么的。

我已经尝试了我在互联网上找到的几乎所有解决方案,但似乎对我不起作用,当某些东西似乎起作用时,我在登录后得到这个页面(我被重定向导致会话退出):http://img831.imageshack。我们/img831/7459/pic4w.png

提前致谢

0 投票
1 回答
2178 浏览

ajax - 如何通过显示 JavaScript 警报来处理 ViewExpiredException?

我已阅读问题Handle ViewExireException/ajax 并显示 Primefaces 对话框和 BalusC 的答案。我想ViewExpiredException通过显示带有刷新页面信息的警报来处理。我接受了 BalusC 向用户RequestContext提出的让 JavaScript 执行的建议,并且我已经删除了 JSF 重定向,因为我没有使用它:

问题是,我NullPointerException在从处理程序执行句柄方法时得到了wrapped。我添加了return子句,添加后效果是一样的:

[30.01.13 15:45:59:140 CET] 0000002e ErrorPageWrit E 发生异常 javax.faces.FacesException: java.lang.NullPointerException at org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.wrap(ExceptionHandlerImpl.java:241 ) 在 org.apache.myfaces.lifecycle 的 my.project.web.handler.ViewExpiredExceptionExceptionHandler.handle(ViewExpiredExceptionExceptionHandler.java:59) 的 org.apache.myfaces.shared_impl.context.ExceptionHandlerImpl.handle(ExceptionHandlerImpl.java:156)。 LifecycleImpl.executePhase(LifecycleImpl.java:191) 在 org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)

所以,父句柄方法被执行,认为应该有来自方法的返回(信息字符串被记录)。

我正在使用PrimeFaces 3.4MyFaces 2.0.7WebSphere 7上的所有内容。

我不明白这里发生了什么。是否有可能实现我想要的,如果可以,我做错了什么?

0 投票
1 回答
1342 浏览

session - 单击时带有按钮的 Websphere Portal JSF 2 会话超时页面导致查看过期异常

我正在使用带有 Primefaces 3.5 的 Websphere Portal 8。要求是,当会话超时时,用户将被重定向到会话超时页面,该页面上有一个按钮,单击该按钮时会将用户带回登录页面。登录页面和会话超时页面一样包含一个 portlet——两者都在同一个 portlet 应用程序中。我正在使用 ImplicitLogoutFilter 成功重定向到会话超时页面:

会话超时页面上的 portlet 包含一个按钮,该按钮调用重定向到登录页面的 portlet 操作:

}

但是,当单击按钮而不是进入登录页面时,会引发 ViewExpired 异常。此异常由异常处理程序处理,该处理程序处理异常、重定向到错误页面并向用户显示错误。

我的问题是如何在会话过期后避免 ViewExpired 异常,因为我只想能够重定向到登录页面而不会在这种情况下发生 ViewExpiredException,

在此先感谢您的帮助