处理ViewExpiredException(JSF 2.1,Seam2,Primefaces 3.4.1,Omnifaces 1.3)

时间:2013-01-25 16:48:26

标签: jsf-2 primefaces seam viewexpiredexception omnifaces

尝试使用框架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

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

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

<application>
<...>
<resource-handler>org.omnifaces.resourcehandler.CombinedResourceHandler</resource-handler> 
<...>
</application>


<factory>
<render-kit-factory>org.omnifaces.renderkit.Html5RenderKitFactory</render-kit-factory>
<exception-handler-factory>org.omnifaces.exceptionhandler.FullAjaxExceptionHandlerFactory</exception-handler-factory>
</factory>

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

我几乎尝试了我在互联网上找到的几乎所有解决方案似乎都没有对我有用,当一些东西看起来有效时我在登录后得到这个页面(我重定向会导致会话结束):http://img831.imageshack.us/img831/7459/pic4w.png

提前致谢

1 个答案:

答案 0 :(得分:0)

非常感谢你们的回复。我终于解决了。

我不太清楚为什么,但这个atribute login-view-id =“/ login.xhtml”在pages.xml文件的标签“pages”中 正在避免使用此代码的“过程”:

<exception class="org.jboss.seam.security.NotLoggedInException">
  <redirect view-id="/login.xhtml">
     <message>Debe loguearse para continuar</message>
  </redirect>

我删除了login-view-id属性后开始处理NotLoggedInException,但是一旦登录我仍然遇到同样的问题所以我添加并最终解决了问题,所以完全标记结束如下:

<exception class="org.jboss.seam.security.NotLoggedInException">
   <end-conversation/>
  <redirect view-id="/login.xhtml">
     <message>Debe loguearse para continuar</message>
  </redirect>

非常感谢!