PrimeFaces ViewExpiredException after page reload

我的未来我决定 提交于 2020-01-04 03:00:11

问题


I have wrapper PrimeFaces.ajax.AjaxResponse to handle ViewExpiredException (reloading the page):

var handleViewExpired = function (viewId) {
    window.alert('${msg.ajax.viewExpired}');
    window.location.reload();
};

However, sometimes I got that error over and over again after trying to click anything invoking AJAX requests on the site:

javax.faces.application.ViewExpiredException: /tree.xhtmlNo saved view state could be found for the view identifier: /tree.xhtml
    at org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:128)

Am I doing refresh in wrong way? What should I do to invoke full page reload, such as clicking reload in browser? Do I need to remove cookies (JSESSIONID, oam.Flash.RENDERMAP.TOKEN)?

I'm using PrimeFaces 3.5 with MyFaces 2.0.7 running on WebSphere 7.0.


回答1:


If you have many (>15) pages/views/frames that are concurrently opened in the session, then, the following may be useful.

You need to have a look on:

1. numberOfViewsInSession: defines the number of (top-level) view states (pages) to support back button operation

2. numberOfLogicalViews: defines the number of logical views (frames) that can present in a page (per top-level view)

A quick action to make sure if it's relevant is to set those numbers to 500, and see If they are relevant, then, you can find more information in the following links:

http://www.java.net/node/681211

Problem with numberOfViewsInSession and multiple tabs



来源:https://stackoverflow.com/questions/15252234/primefaces-viewexpiredexception-after-page-reload

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!