Primefaces AJAX更新属性提供ArrayIndexOutOfBoundsException

Primefaces AJAX更新属性提供ArrayIndexOutOfBoundsException,primefaces,jboss,Primefaces,Jboss,我目前正在将我的应用程序迁移到Jboss EAP 72 我使用primefaces 6.1和primefces扩展6.1.1 JSF版本:2.3.5.SP1-redhat-1 我得到一个由Ajax更新属性引起的ArrayIndexOutOfBoundsExpection,这很奇怪,因为它在EAP6.1中工作 此代码不起作用,请在remoteCommand中进行更新 <p:remoteCommand name="rc" update=":content :content:comboOps"

我目前正在将我的应用程序迁移到Jboss EAP 72

我使用primefaces 6.1和primefces扩展6.1.1

JSF版本:2.3.5.SP1-redhat-1

我得到一个由Ajax更新属性引起的ArrayIndexOutOfBoundsExpection,这很奇怪,因为它在EAP6.1中工作

此代码不起作用,请在remoteCommand中进行更新

 <p:remoteCommand name="rc" update=":content :content:comboOps"  action="#{filesP.atualizaCriterios}" />

                 <div class="row-fluid">
                    <div class="control-group">
                        <label class="control-label" for="content:nifap"><strong>NIFAP</strong></label>
                        <div class="controls">
                            <h:inputText 
                                id="nifap"
                                value="#{bean.nifap}"
                                onchange="rc()"
                                disabled="#{bean.nifapDisabled}"
                                styleClass="input-small">
                                <t:validateRegExpr 
                                    pattern="^[0-9]*$"
                                    summaryMessage="Formato inválido!"
                                    detailMessage="Deve inserir apenas números no campo NIFAP." />
                            </h:inputText>
                            <span class="help-inline"><p:message for="nifap" display="icon"/></span>


                        </div>
                    </div>
                </div>    



                <div class="row-fluid">
                    <div class="control-group">
                        <label class="control-label" for="content:pOP"><strong>OPERAÇÃO</strong></label>
                        <div class="controls">


                                    <p:selectOneMenu
                                           id="comboOps"
                                           value="#{bean.operacao}"
                                           filter="true" filterMatchMode="contains"
                                           style="width:300px"
                                           panelStyle="width:400px"
                                           styleClass="input-block-level select">

                                           <f:selectItem itemLabel="Seleccione"  itemValue="#{null}"/>
                                           <f:selectItems value="#{bean.listaOperacoesNifap}" var="item2"
                                                  itemValue="#{item2.codigo}" itemLabel="#{item2.descricao}" />


                                    </p:selectOneMenu>


                        </div>
                    </div>
                </div>

我认为AJAX响应中的错误导致XML无效,因为错误出现在
com.sun.faces.renderkit.html_basic.HtmlResponseWriter.writeUnescapedCData

我很确定这是您在Mojarra JSF中的问题:

固定在Mojarra 2.3.11中:

原始PF版本:


注意:Apache MyFaces已经对此进行了很长时间的修复。

谢谢,Kukelje,我更改了标题并格式化了代码,还从服务器添加了完整的stacktrace。Ajax属性更新在EAP 6.1中运行得非常好,我必须使用那种奇怪的方式调用ID进行更新。我更新了标题,并给出了一个简单的代码,该代码不起作用,其他代码也起作用,所有这些都与Ajax中的更新属性有关。JSF版本:2.3.5.SP1-redhat-1。这可能是服务器上http头的配置吗?这是我所有的评论,谢谢改进!非常感谢你的帮助,Melloware。那我该怎么办?更新服务器中的jsf impl?@FernandoMartins:这是stackoverflow中的一个现有Q/A。@FernandoMartins是的,您可以在Jboss中更新jsf impl,方法是将模块JAR从2.3.5换成最新的2.3.13,并尝试一下。
<p:remoteCommand name="rc" update="@([id$=comboOps])"  action="#{filesP.atualizaCriterios}" />

                 <div class="row-fluid">
                    <div class="control-group">
                        <label class="control-label" for="content:nifap"><strong>NIFAP</strong></label>
                        <div class="controls">
                            <h:inputText 
                                id="nifap"
                                value="#{bean.nifap}"
                                onchange="rc()"
                                disabled="#{bean.nifapDisabled}"
                                styleClass="input-small">
                                <t:validateRegExpr 
                                    pattern="^[0-9]*$"
                                    summaryMessage="Formato inválido!"
                                    detailMessage="Deve inserir apenas números no campo NIFAP." />
                            </h:inputText>
                            <span class="help-inline"><p:message for="nifap" display="icon"/></span>


                        </div>
                    </div>
                </div>    



                <div class="row-fluid">
                    <div class="control-group">
                        <label class="control-label" for="content:pOP"><strong>OPERAÇÃO</strong></label>
                        <div class="controls">


                                    <p:selectOneMenu
                                           id="comboOps"
                                           value="#{bean.operacao}"
                                           filter="true" filterMatchMode="contains"
                                           style="width:300px"
                                           panelStyle="width:400px"
                                           styleClass="input-block-level select">

                                           <f:selectItem itemLabel="Seleccione"  itemValue="#{null}"/>
                                           <f:selectItems value="#{bean.listaOperacoesNifap}" var="item2"
                                                  itemValue="#{item2.codigo}" itemLabel="#{item2.descricao}" />


                                    </p:selectOneMenu>


                        </div>
                    </div>
                </div>
2020-05-16 11:42:45,469 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (default task-4) Error Rendering View[/documento/editar/files.xhtml]: java.lang.ArrayIndexOutOfBoundsException: -2
at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.writeUnescapedCData(HtmlResponseWriter.java:1499)
at com.sun.faces.renderkit.html_basic.HtmlResponseWriter.writeText(HtmlResponseWriter.java:986)
at javax.faces.context.ResponseWriterWrapper.writeText(ResponseWriterWrapper.java:320)
at javax.faces.context.ResponseWriterWrapper.writeText(ResponseWriterWrapper.java:320)
at javax.faces.context.ResponseWriterWrapper.writeText(ResponseWriterWrapper.java:320)
at javax.faces.context.ResponseWriterWrapper.writeText(ResponseWriterWrapper.java:320)
at com.sun.faces.facelets.el.ELText$ELTextVariable.writeText(ELText.java:260)
at com.sun.faces.facelets.el.ELText$ELTextComposite.writeText(ELText.java:165)
at com.sun.faces.facelets.compiler.TextInstruction.write(TextInstruction.java:86)
at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:83)
at com.sun.faces.facelets.compiler.UILeaf.encodeAll(UILeaf.java:211)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:176)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:918)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1905)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:639)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1736)
at javax.faces.component.UIForm.visitTree(UIForm.java:395)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1747)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1747)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:424)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:343)
at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:57)
at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:252)
at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:1124)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1905)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:465)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:194)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:151)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:151)
at org.apache.myfaces.tomahawk.application.ResourceViewHandlerWrapper.renderView(ResourceViewHandlerWrapper.java:169)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:151)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:151)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:151)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:126)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:223)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:671)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:74)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:129)
at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:100)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at pt.ifap.infra.web.filters.AuthenticationFilter.doFilter(AuthenticationFilter.java:88)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.opentracing.contrib.jaxrs2.server.SpanFinishingFilter.doFilter(SpanFinishingFilter.java:55)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletChain$1.handleRequest(ServletChain.java:68)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.RedirectDirHandler.handleRequest(RedirectDirHandler.java:68)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:132)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:68)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:269)
at io.undertow.servlet.handlers.ServletInitialHandler.access$100(ServletInitialHandler.java:78)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:133)
at io.undertow.servlet.handlers.ServletInitialHandler$2.call(ServletInitialHandler.java:130)
at io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:48)
at io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
at org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
at org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1504)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:249)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:78)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:99)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
at java.lang.Thread.run(Thread.java:748)