Mojarra 如何解析JSF1095:在每个请求中抛出的时间(…)之前,响应已经提交

Mojarra 如何解析JSF1095:在每个请求中抛出的时间(…)之前,响应已经提交,mojarra,glassfish-4.1,Mojarra,Glassfish 4.1,我读了很多关于Flash在Mojarra是如何被窃听的,但从现在起我就没有任何问题了。我有一个JavaEE项目(1.8),其中有一个@ManagedBean(javax.faces.bean)和@ViewScope(javax.faces.bean)以及类似 public void foo() throws IOException{ FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessa

我读了很多关于Flash在Mojarra是如何被窃听的,但从现在起我就没有任何问题了。我有一个JavaEE项目(1.8),其中有一个@ManagedBean(javax.faces.bean)和@ViewScope(javax.faces.bean)以及类似

public void foo() throws IOException{
    FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(keepMessages);
    FacesContext.getCurrentInstance().addMessage("msg", new FacesMessage(FacesMessage.SEVERITY_INFO, message, detail));
    redirectController.redirect("index.html");
}
redirectController中的重定向功能只是

public void redirect(String url) throws IOException {
    FacesContext.getCurrentInstance().getExternalContext().redirect(url);
}
我通过调用xhtml文件调用此函数

<p:commandLink action="#{bean.foo()}"
               update="@form">
               buttontext
</p:commandLink>

按钮文字
当我按下按钮时,重定向工作并显示消息,但通过此请求和以下每个请求,我在server.log中都会收到此消息:

警告:JSF1095:在我们尝试为flash设置传出cookie时,响应已经提交。下次请求时,存储到闪存的任何值都将不可用

我使用的是Glassfish 4.1.1,它运行Mojarra 2.2.12和Primefaces 5.2

我担心这可能会导致副作用,然后滥发日志。我做错了什么


PS:由于这是我在stackoverflow上的第一篇文章,我想说谢谢你过去给别人的所有好答案,这些答案为我节省了很多时间和麻烦。:-)

重定向控制器的代码是什么,更具体地说是重定向方法?可能是您使用servlet方式而不是jsf方式进行重定向,这可能就是原因所在。如果你给它贴上Mojarra的标签,你会说它对MyFaces有效。玻璃鱼也是如此(它对野蝇有效吗?)。妈的,很抱歉我忘了这个。我添加了这个函数。我弄错标签了吗?我将其标记为glassfish-4.1,因为问题发生在glassfish-4.1和mojarra上,因为任何其他相关帖子都指向mojarra版本,所以我怀疑存在问题。我应该删除标签吗?重定向控制器的代码是什么,更具体地说是重定向方法?可能是您使用servlet方式而不是jsf方式进行重定向,这可能就是原因所在。如果你给它贴上Mojarra的标签,你会说它对MyFaces有效。玻璃鱼也是如此(它对野蝇有效吗?)。妈的,很抱歉我忘了这个。我添加了这个函数。我弄错标签了吗?我将其标记为glassfish-4.1,因为问题发生在glassfish-4.1和mojarra上,因为任何其他相关帖子都指向mojarra版本,所以我怀疑存在问题。我应该去掉标签吗?