Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 会话过期时RenderResponsePhase上的JSF2.0 NPE(viewRoot为空)_Jsf 2_Nullpointerexception_Viewexpiredexception - Fatal编程技术网

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

Jsf 2 会话过期时RenderResponsePhase上的JSF2.0 NPE(viewRoot为空),jsf-2,nullpointerexception,viewexpiredexception,Jsf 2,Nullpointerexception,Viewexpiredexception,我的应用程序使用JSF2.0.6和RichFaces4.1.0。 我实现了一个ExceptionHandler,它通常在弹出窗口中显示所有异常,并且工作正常 但当我使用此上下文参数禁用部分状态保存时,出现了一些问题: <context-param> <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name> <param-value>false</param-value>

我的应用程序使用JSF2.0.6和RichFaces4.1.0。 我实现了一个ExceptionHandler,它通常在弹出窗口中显示所有异常,并且工作正常

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

<context-param>
  <param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
  <param-value>false</param-value>
</context-param>
事实上,viewRoot是空的

如果启用了部分状态保存或会话未过期,则不会发生这种情况

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

其他信息:
服务器:Tomcat 6.0.18

Mojarra 2.0.6已经超过1.5年了。你试过当前版本吗?这个bug可能已经被修复了(虽然我不认识这个)。是的,我试过了,它在最新版本(2.1.14)下运行良好,但是在我的项目中更改库有点长和复杂…嗯。。这不是一个我们可以解决的问题,对吗?好吧,这只是为了防止在不更新库的情况下修复它。感谢您的帮助。您可以将包含修复程序的Mojarra特定类的副本潜入webapp源文件夹。它将在类加载中优先于JAR中的类。但是我真的更喜欢用一个更新的版本来替换这个罐子。
<context-param>
  <param-name>javax.faces.FULL_STATE_SAVING_VIEW_IDS</param-name>
  <param-value>/index.xhtml</param-value>
</context-param>
    ViewDeclarationLanguage vdl =
          vh.getViewDeclarationLanguage(facesContext,
                                            facesContext.getViewRoot().getViewId());