重新登录时Wicket PageExpiredException

重新登录时Wicket PageExpiredException,exception,jakarta-ee,login,wicket,wicket-6,Exception,Jakarta Ee,Login,Wicket,Wicket 6,我正在使用wicket 6.15编写一个web应用程序。 我有个问题: -登录到web并使用用户A登录(表1) -打开更多选项卡(选项卡2) -使其成为experid会话,如更改服务器时间 -在选项卡1中,当执行某些操作时,pageexpiredexceptionthrow将使我再次登录,我使用用户A登录(与以前一样) org.apache.wicket.protocol.http.PageExpiredException:id为“10”的页面已过期 -在选项卡2中,当Dosomethingpa

我正在使用wicket 6.15编写一个web应用程序。
我有个问题:
-登录到web并使用用户A登录(表1)
-打开更多选项卡(选项卡2)
-使其成为experid会话,如更改服务器时间
-在选项卡1中,当执行某些操作时,
pageexpiredexception
throw将使我再次登录,我使用用户A登录(与以前一样)

org.apache.wicket.protocol.http.PageExpiredException:id为“10”的页面已过期

-在选项卡2中,当Dosomething
pageexpiredexception
throw时,让我登录

org.apache.wicket.protocol.http.PageExpiredException:id为“11”的页面已过期


我如何解决这个问题?我希望在选项卡2中继续,没有异常,因为它使用相同的用户帐户。

创建第二个会话后,其中没有id为“11”的页面,因此会引发PageExpiredException。 默认情况下,Wicket将尝试从url检测页面类并创建它的新实例。如果无法检测到它,例如url类似于“/wicket/page?11”,则将使用
ApplicationSettings\getPageExpiredExceptPage()


如果登录页面显示在你的应用程序中,那么你很可能有自定义IRequestCycleListener,它在
#onException()
方法中捕获小便并重定向到你的登录页面。

你可以尝试在wicket 7中重定向到
WebApplication类中的登录页面

getApplicationSettings().setPageExpiredErrorPage(LoginPage.class);
一旦登录过期,它将重定向到您的登录页面