JSF + Openshift重定向无法正常工作

时间:2015-10-12 20:16:49

标签: java jsf jsf-2

我正在使用JSF 2 OpenShift(JBoss 7服务器)做一个项目,我无法通过重定向来解决问题。我正在使用Glassfish在当地尝试一切。当我尝试访问“access.xhml”页面时,我的问题就出现了,为了监控我记录的用户,我把它放在了下面:

<f:metadata>
    <f:event type="preRenderView" listener="#{sesion.checkSession()}" />
</f:metadata>

在方法的定义中我有以下

public void checkSession() throws IOException{
    faceContext=FacesContext.getCurrentInstance();
    httpServletRequest=(HttpServletRequest)faceContext.getExternalContext().getRequest();
    if(httpServletRequest.getSession().getAttribute("connected")==null)
    {
        faceContext.getExternalContext().redirect(faceContext.getExternalContext().getRequestContextPath() + "/index.xhtml"); // For local changes
    }
}

证明什么返回

faceContext.getExternalContext().getRequestContextPath()

我注意到它总是“”,这表明重定向应该转到根目录。关键是当我尝试直接输入www.my-app.rhcloud.com/access.xhtml时总是抛出500错误

Exception when handling error trying to reset the response.: java.lang.IllegalStateException
at com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl...
at org.sindicatopygp.beans.SessionBean.checkSession(SessionBean.java:43)

有什么想法吗?我们感谢

1 个答案:

答案 0 :(得分:0)

我解决了。由于某种原因,index.xhtml无法识别该文件,如果重定向到servlet root并成功重定向到文件index.xhtml。解决方案

<div class="alert alert-dismissable alert-info">
<button aria-hidden="true" class="close" data-dismiss="alert">×</button>
Good morning
</div>