如何为NonexistentConversationException配置错误页面位置?

时间:2013-08-02 22:15:20

标签: jsf cdi custom-error-pages weld conversation-scope

?cid=XX在网址中时,我需要帮助处理过期/不存在的对话。我试图把

<error-page>
    <exception-type>org.jboss.weld.context.ContextNotActiveException</exception-type>
    <location>/faces/index.xhtml</location>
</error-page>
<error-page>
    <exception-type>org.jboss.weld.context.NonexistentConversationException</exception-type>
    <location>/faces/index.xhtml</location>
</error-page>

然而这些都行不通。我仍然收到错误,无法转发index.xhtml。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

您必须明确指定不应针对特定请求传播对话。在index.xhtml的末尾添加nocid=true作为参数。

<error-page>
    <exception-type>org.jboss.weld.context.NonexistentConversationException</exception-type>
    <location>/faces/index.xhtml?nocid=true</location>
</error-page>

请参阅以下链接 expired conversations involving CDI and JSF

答案 1 :(得分:2)

焊接异常的祖先在web.xml中起作用:

<error-page>
    <exception-type>javax.enterprise.context.NonexistentConversationException</exception-type>
    <location>/index.xhtml?nocid=true</location>
</error-page>