この問題を解決するために、JSF を 2.1.6 から 2.1.22 にアップグレードしました: JSF エラー - IllegalStateException: PWC3999: 応答がコミットされた後にセッションを作成できません
そして、それは機能します。しかし、JSF バージョンの変更により、別の問題が発生しました。一部のコンポーネントが表示されず、GlassFish が 2 つの例外を含むスタックトレースをスローしました。最初:
javax.faces.FacesException: Cannot find component with identifier ":previewForm" referenced from "indexForm:publicacoesDt:j_idt112".
at org.primefaces.util.ComponentUtils.findClientIds(ComponentUtils.java:271)
at org.primefaces.util.AjaxRequestBuilder.addIds(AjaxRequestBuilder.java:102)
at org.primefaces.util.AjaxRequestBuilder.update(AjaxRequestBuilder.java:90)
at org.primefaces.renderkit.CoreRenderer.buildAjaxRequest(CoreRenderer.java:196)
at org.primefaces.component.commandlink.CommandLinkRenderer.encodeEnd(CommandLinkRenderer.java:64)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:905)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
...
そして2番目:
PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalStateException: CDATA tags may not nest
at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.startCDATA(HtmlResponseWriter.java:664)
at javax.faces.context.ResponseWriterWrapper.startCDATA(ResponseWriterWrapper.java:172)
at javax.faces.context.PartialResponseWriter.startError(PartialResponseWriter.java:342)
at org.primefaces.context.PrimePartialResponseWriter.startError(PrimePartialResponseWriter.java:155)
at com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError(AjaxExceptionHandlerImpl.java:200)
at com.sun.faces.context.AjaxExceptionHandlerImpl.handle(AjaxExceptionHandlerImpl.java:124)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:119)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594)
...
識別子「indexForm:publicacoesDt:j_idt112」を持つコンポーネントは、PrimeFaces の commandLink であり、「:previewForm」は JSF フォームです。この問題は、フォームを commandLink で更新する commandButton が起動されたときに発生します。しかし、ちょうど 2 回目の提出で、最初の提出は成功しました。
なぜこの問題が発生するのか知っている人はいますか?