Cannot create a Session after the Response has been Committed

Asked

Viewed 763 times

-4

I have the following error in my application that occurs when I access any page. I had to redo the layout of the application and that’s when the problems started.

Whenever I accessed a page, except the login page, this error occurred and I missed the session.

I researched the problem and found some possible solutions but none solved unfortunately.

I’m using jboss eap 6.3 and on the console appears the error below.

15:48:00,391 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/prod-web].[Faces Servlet]] (http-localhost.localdomain/127.0.0.1:8080-5) JBWEB000236: Servlet.service() for servlet Faces Servlet threw exception: java.lang.IllegalStateException: JBWEB000043: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:2647) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.connector.Request.getSession(Request.java:2381) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:791) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at com.sun.faces.context.ExternalContextImpl.getSession(ExternalContextImpl.java:157) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at javax.faces.context.ExternalContextWrapper.getSession(ExternalContextWrapper.java:396) [jboss-jsf-api_2.1_spec-2.1.28.Final-redhat-1.jar:2.1.28.Final-redhat-1]
at com.sun.faces.renderkit.ServerSideStateHelper.writeState(ServerSideStateHelper.java:189) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:122) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:113) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:464) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:125) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:286) [jboss-jsf-api_2.1_spec-2.1.28.Final-redhat-1.jar:2.1.28.Final-redhat-1]
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:286) [jboss-jsf-api_2.1_spec-2.1.28.Final-redhat-1.jar:2.1.28.Final-redhat-1]
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) [jsf-impl-2.1.28.redhat-3.jar:2.1.28.redhat-3]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) [jboss-jsf-api_2.1_spec-2.1.28.Final-redhat-1.jar:2.1.28.Final-redhat-1]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at br.com.seta.produto.eai.bean.LoginFilter.doFilter(LoginFilter.java:35) [classes:]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.4.0.Final-redhat-19.jar:7.4.0.Final-redhat-19]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:926) [jbossweb-7.4.8.Final-redhat-4.jar:7.4.8.Final-redhat-4]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_45]

XHTML of a page

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">

<h:head>
<link rel="stylesheet" type="text/css" href="./default.css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script>
function fixPositioning(panelId) {
var popupPanel = document.getElementById(panelId);
if (popupPanel) {
    popupPanel.style.visibility = "hidden";
    popupPanel.style.display = "block";
}
}

</script>

</h:head>

<body class="body">
<center>
<div id="master">
<ui:include src="./templete/templete.xhtml" />




        <!-- INICIO DA BARRA DE BOTÕES -->
        <!--<center>-->
            <div style="height: 21px; width: 1100px; background-color:    rgb(0,107,186); margin-top: 15px;" align="left">
                <div class="divFloatLeaft">
                    <a4j:commandButton styleClass="Button" value="Enviar Lote" render="out" execute="@this" oncomplete="#{rich:component('editPaneEnviarLote')}.show()" />
                </div>
                <div class="divFloatLeaft">
                    <a4j:commandButton styleClass="Button" value="Expurgar Lote" render="out" execute="@this" oncomplete="#{rich:component('editPaneExpugarLote')}.show()" />
                </div>
            </div>
        <!--</center>-->
        <!-- FIM DA BARRA DE BOTÕES -->



        <div>

            <!-- INICIO DO GRID -->
            <rich:extendedDataTable rows="20" styleClass="rich" value="#{produtosBean.loteDtos}"
                var="pro" iterationStatusVar="it" style="width:1100px;" selectionMode="none"  >


                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">Refêrencia</f:facet>
                    <center>
                        <h:outputText value="#{pro.referencia}" 
                            onmousemove="event.cancelBubble = true;return false;"
                            onmousedown="event.cancelBubble = true;return false;"  />
                    </center>
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo" width="200px">
                    <f:facet name="header">Desc Família</f:facet>
                    <h:outputText value="#{pro.descFamilia}" />
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo" width="300px">
                    <f:facet name="header">Desc Completa Produto</f:facet>
                    <h:outputText value="#{pro.descCompletaProduto}" />
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo" width="300px">
                    <f:facet name="header">Desc Reduzida Produto</f:facet>
                    <h:outputText value="#{pro.descReduzidaProduto}" />
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">EAN</f:facet>
                    <h:outputText value="#{pro.ean}" />
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo" width="100px">
                    <f:facet name="header">Quantidade</f:facet>
                    <center>
                        <h:outputText value="#{pro.quantidadeUnidade}" />
                    </center>
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">DUN</f:facet>
                    <h:outputText value="#{pro.dun}" />
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">Quantidade</f:facet>
                    <center>
                        <h:outputText value="#{pro.quantidadeDun}" />
                    </center>
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">Altura(cm)</f:facet>
                    <center>
                        <h:outputText value="#{pro.alturaDun}" />
                    </center>
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">Larg(cm)</f:facet>
                    <center>
                        <h:outputText value="#{pro.laguraDun}" />
                    </center>
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">Profund(cm)</f:facet>
                    <center>
                        <h:outputText value="#{pro.profundidadeDun}" />
                    </center>
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">Liquido(kg)</f:facet>
                    <center>
                        <h:outputText value="#{pro.liquidoDun}" />
                    </center>
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">Bruto(kg)</f:facet>
                    <center>
                        <h:outputText value="#{pro.brutoDun}" />
                    </center>
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">Display</f:facet>
                    <h:outputText value="#{pro.display}" />
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">EAN Display</f:facet>
                    <h:outputText value="#{pro.eanDisplay}" />
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo">
                    <f:facet name="header">NCM</f:facet>
                    <h:outputText value="#{pro.ncm}" />
                </rich:column>

                <rich:column headerClass="dataTableHeader gridProdutoHeaderFundo" width="60px">
                    <a4j:commandLink styleClass="no-decor" execute="@this"
                        render="@none"
                        oncomplete="#{rich:component('confirmPane')}.show()">
                        <h:graphicImage value="./img/delete.gif" alt="delete" />
                        <a4j:param value="#{it.index}"
                            assignTo="#{produtosBean.produtosIndex}" />
                    </a4j:commandLink>

                    <a4j:commandLink styleClass="no-decor" render="editGrid"
                        execute="@this" oncomplete="#{rich:component('editPane')}.show()">
                        <h:graphicImage value="./img/edit.gif" alt="edit" />
                        <a4j:param value="#{it.index}"
                            assignTo="#{produtosBean.produtosIndex}" />
                        <f:setPropertyActionListener target="#{produtosBean.editLote}"
                            value="#{pro}" />
                    </a4j:commandLink>

                </rich:column>

                <f:facet name="footer">
                    <rich:dataScroller styleClass="gridProdutoHeaderFundo"
                        page="#{produtosBean.page}" />
                </f:facet>
            </rich:extendedDataTable>
            <!-- FIM DO GRID -->



            <a4j:jsFunction name="remove" action="#{produtosBean.remove}"
                render="tableProdutos" execute="@this"
                oncomplete="#{rich:component('confirmPane')}.hide();" />

            <rich:popupPanel id="statPane" autosized="true">
                <h:graphicImage value="./img/ai.gif" alt="ai" />
                Aguarde...
            </rich:popupPanel>

            <rich:popupPanel id="confirmPane" autosized="true">
                Você confirma a exclusão dessa linha?

                <a4j:commandButton value="Cancelar" styleClass="Button"
                    style="margin-left:20px;"
                    onclick="#{rich:component('confirmPane')}.hide(); return false;" />

                <a4j:commandButton value="Excluir" styleClass="Button"
                    style="margin-left:20px;" onclick="remove(); return false;" />
            </rich:popupPanel>



            <!-- EDITAR PRODUTO -->
            <rich:popupPanel header="Detalhes da Edição do Produto"
                autosized="true" id="editPane" domElementAttachment="form"
                onbeforeshow="'#{rich:clientId('popupPanelId')}'">

                <h:panelGrid columns="3" id="editGrid" styleClass="editGrid">


                    <h:outputText value="Família" />
                    <rich:select value="#{produtosBean.familaDefault}"
                        disabled="#{produtosBean.cadastrarFamilia}"
                        enableManualInput="true" styleClass="detalheProdutoTextBox"
                        style="width:200px;" id="comboFamilia">
                        <f:selectItems value="#{produtosBean.familiaDtos}"
                            noSelectionValue="99999" var="fam" itemLabel="#{fam.familia}" itemValue="#{fam.familia}|#{fam.seqfamilia}" />
                        <a4j:ajax event="change"
                            listener="#{produtosBean.listValueFamilia}" execute="@this" />
                    </rich:select>
                    <h:panelGroup />

                    <h:outputText value="Cadastrar Nova Família" />
                    <h:selectBooleanCheckbox value="#{produtosBean.cadastrarFamilia}"
                        style="margin-left: 10px;">
                        <a4j:ajax event="click" render="textBoxNovaFamilia comboFamilia" />
                    </h:selectBooleanCheckbox>
                    <h:panelGroup />

                    <h:outputText value="Nova Família" />
                    <h:inputText value="#{produtosBean.novaFamilia}"
                        id="textBoxNovaFamilia" label="Campo Para Novas Famílias"
                        disabled="#{!produtosBean.cadastrarFamilia}"
                        styleClass="detalheProdutoTextBox" style="width:200px;">
                    </h:inputText>
                    <h:outputText style="color:red !important;"
                        value="Use esse campo somente se for cadastrar uma nova família." />


                    <h:outputText value="Referência" />
                    <h:inputText value="#{produtosBean.editLote.referencia}"
                        id="textBoxReferencia" label="Campo Referência"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        validatorMessage="Não é uma referência válida."
                        converterMessage="Não é uma referência válida.">
                        <f:validateLongRange minimum="0" maximum="999999999999999999" />
                    </h:inputText>
                    <rich:message id="MsgReferencia" for="textBoxReferencia" />

                    <h:outputText value="Desc Completa Produto" />
                    <h:inputText value="#{produtosBean.editLote.descCompletaProduto}"
                        id="textBoxDescCompletaProduto" label="Desc Completa Produto"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        required="true"
                        validatorMessage="Tamanho máximo do campo é 50 caracteres."
                        converterMessage="Tamanho máximo do campo é 50 caracteres."
                        requiredMessage="Descrição completa do produto é obrigatoria.">
                        <f:validateLength minimum="1" maximum="50" />
                    </h:inputText>
                    <rich:message id="MsgDesCompletaProduto"
                        for="textBoxDescCompletaProduto" />

                    <h:outputText value="Desc Reduzida Produto" />
                    <h:inputText value="#{produtosBean.editLote.descReduzidaProduto}"
                        id="textBoxDescReduzidaProduto" label="Desc Reduzida Produto"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        required="true"
                        validatorMessage="Tamanho máximo do campo é 24 caracteres."
                        converterMessage="Tamanho máximo do campo é 2 caracteres."
                        requiredMessage="Descrição reduzida do produto é obrigatoria.">
                        <f:validateLength minimum="1" maximum="24" />
                    </h:inputText>
                    <rich:message id="MsgDescReduzidaProduto"
                        for="textBoxDescReduzidaProduto" />

                    <h:outputText value="Código" />
                    <h:inputText value="#{produtosBean.editLote.ean}" id="textBoxEan"
                        label="EAN" styleClass="detalheProdutoTextBox"
                        style="width:200px;" validatorMessage="Não é um ean válido."
                        converterMessage="Não é um ean válido.">
                        <f:validateLongRange minimum="0" maximum="999999999999999999" />
                    </h:inputText>
                    <rich:message id="MsgEan" for="textBoxEan" />

                    <h:outputText value="Tipo" />
                    <rich:select value="#{produtosBean.eanTipoDefault}"
                        enableManualInput="false" styleClass="detalheProdutoTextBox"
                        style="width:200px;" id="comboEanTipo">

                        <f:selectItems value="#{produtosBean.eanTipos}" noSelectionValue="" />

                        <a4j:ajax event="change" listener="#{produtosBean.listValueEanTipo()}" execute="@this" />
                    </rich:select>
                    <h:panelGroup />

                    <h:outputText value="Quantidade" />
                    <h:inputText value="#{produtosBean.editLote.quantidadeUnidade}"
                        id="textBoxQuantidade" label="Quantidade"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        validatorMessage="Não é uma quantidade válida."
                        converterMessage="Não é uma quantidade válida.">
                        <f:validateLength minimum="1" maximum="8" />
                    </h:inputText>
                    <rich:message id="MsgQuantidade" for="textBoxQuantidade" />

                    <h:outputText value="Código Embalagem" />
                    <h:inputText value="#{produtosBean.editLote.dun}" id="textBoxDun"
                        label="DUN" styleClass="detalheProdutoTextBox"
                        style="width:200px;" validatorMessage="Não é um dun válido.."
                        converterMessage="Não é um dun válido.">
                        <f:validateLength minimum="1" maximum="18" />
                    </h:inputText>
                    <rich:message id="MsgBoxDun" for="textBoxDun" />

                    <h:outputText value="Tipo" />                       
                    <h:selectOneMenu value="#{produtosBean.dunTipoDefault}" valueChangeListener="#{produtosBean.listValueDunTipo}" styleClass="detalheProdutoTextBox">
                        <f:selectItems value="#{produtosBean.dunTipoDtos}" var="dun" itemLabel="#{dun.descricao}" itemValue="#{dun.lista}" />
                        <a4j:ajax event="valueChange" execute="@this" />
                    </h:selectOneMenu>
                    <h:panelGroup />

                    <h:outputText value="Quantidade" />
                    <h:inputText value="#{produtosBean.editLote.quantidadeDun}"
                        id="textBoxQuantidade2" label="Quantidade"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        validatorMessage="Não é uma quantidade válida."
                        converterMessage="Não é uma quantidade válida.">
                        <f:validateDoubleRange minimum="0.00" maximum="99999999.00" />
                    </h:inputText>
                    <rich:message id="MsgQuantidade2" for="textBoxQuantidade2" />

                    <h:outputText value="Altura(cm)" />
                    <h:inputText value="#{produtosBean.editLote.alturaDun}"
                        id="textBoxAltura" label="Altura"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        validatorMessage="Não é uma altura válida."
                        converterMessage="Não é uma altura válida.">
                        <f:validateDoubleRange minimum="0.00" maximum="9999999999.00" />
                    </h:inputText>
                    <rich:message id="MsgAltura" for="textBoxAltura" />

                    <h:outputText value="Largura(cm)" />
                    <h:inputText value="#{produtosBean.editLote.laguraDun}"
                        id="textBoxLargura" label="Largura"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        validatorMessage="Não é uma largura válida."
                        converterMessage="Não é uma largura válida.">
                        <f:validateDoubleRange minimum="0.00" maximum="9999999999.00" />
                    </h:inputText>
                    <rich:message id="MsgLargura" for="textBoxLargura" />

                    <h:outputText value="Profundidade(cm)" />
                    <h:inputText value="#{produtosBean.editLote.profundidadeDun}"
                        id="textBoxProfundidade" label="Profundidade"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        validatorMessage="Não é uma profundidade válida."
                        converterMessage="Não é uma profundidade válida.">
                        <f:validateDoubleRange minimum="0.00" maximum="9999999999.00" />
                    </h:inputText>
                    <rich:message id="MsgProfundidade" for="textBoxProfundidade" />

                    <h:outputText value="Liquido(kg)" />
                    <h:inputText value="#{produtosBean.editLote.liquidoDun}"
                        id="textBoxLiquido" label="Liquido"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        validatorMessage="Não é um liquido válido."
                        converterMessage="Não é um liquido válido.">
                        <f:validateDoubleRange minimum="0.00" maximum="9999999999.00" />
                    </h:inputText>
                    <rich:message id="MsgLiquido" for="textBoxLiquido" />

                    <h:outputText value="Bruto(kg)" />
                    <h:inputText value="#{produtosBean.editLote.brutoDun}"
                        id="textBoxBruto" label="Bruto"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        validatorMessage="Não é um bruto válido."
                        converterMessage="Não é um bruto válido.">
                        <f:validateDoubleRange minimum="0.00" maximum="9999999999.00" />
                    </h:inputText>
                    <rich:message id="MsgBruto" for="textBoxBruto" />

                    <h:outputText value="Permitir Decimal" />
                    <h:selectBooleanCheckbox id="chkPermitirDecimal" value="#{produtosBean.editLote.pmtDecimal}"
                        style="margin-left: 10px;">
                    </h:selectBooleanCheckbox>
                    <h:panelGroup />

                    <h:outputText value="Display" />
                    <h:inputText value="#{produtosBean.editLote.display}"
                        id="textBoxDisplay" label="Display"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        validatorMessage="Não é um display válido."
                        converterMessage="Não é um display válido.">
                        <f:validateLongRange minimum="0" maximum="999999999999999999" />
                    </h:inputText>
                    <rich:message id="MsgDisplay" for="textBoxDisplay" />

                    <h:outputText value="EAN Display" />
                    <h:inputText value="#{produtosBean.editLote.eanDisplay}"
                        id="textBoxEanDisplay" label="EAN Display"
                        styleClass="detalheProdutoTextBox" style="width:200px;"
                        validatorMessage="Não é um ean display válido."
                        converterMessage="Não é um ean display válido.">
                        <f:validateLongRange minimum="0" maximum="999999999999999999" />
                    </h:inputText>
                    <rich:message id="MsgEanDisplay" for="textBoxEanDisplay" />

                    <h:outputText value="NCM" />
                    <h:inputText value="#{produtosBean.editLote.ncm}" id="textBoxNcm"
                        label="NCM" styleClass="detalheProdutoTextBox"
                        style="width:200px;" validatorMessage="Não é um ncm válido."
                        converterMessage="Não é um ncm válido.">
                        <f:validateLongRange minimum="0" maximum="999999999999999999" />
                    </h:inputText>
                    <rich:message id="MsgNcm" for="textBoxNcm" />

                </h:panelGrid>
                <div style="margin-top: 10px; margin-left: 95px;">
                    <a4j:commandButton styleClass="Button" value="Salvar"
                        action="#{produtosBean.save}" render="tableProdutos"
                        execute="editPane"
                        oncomplete="if (#{facesContext.maximumSeverity==null}) {#{rich:component('editPane')}.hide();}" />
                    <a4j:commandButton styleClass="Button" value="Cancelar"
                        onclick="#{rich:component('editPane')}.hide(); return false;"
                        style="margin-left: 20px;" />
                </div>
            </rich:popupPanel>

<h:form id="form">
            <!-- ENVIAR LOTE -->
            <rich:popupPanel header="Enviar Lote" id="editPaneEnviarLote"
                autosized="true" domElementAttachment="form"
                onbeforeshow="'#{rich:clientId('popupPanelId')}'">

                <h:panelGrid columns="2" id="editGridEnviarLote">

                    <h:outputText value="Identificação do Lote" />
                    <h:inputText value="#{produtosBean.descLote}"
                        style="width: 300px;" id="textBoxIdenteficacaoLote"
                        label="Identificação do Lote" />
                    <h:panelGroup />

                </h:panelGrid>
                <div style="margin-bottom: 5px;">
                    <div style="width: 220px; height: 20px; color: green;"
                        class="divFloatLeaft">
                        <h:outputText id="msgEnviando" value=""
                            binding="#{produtosBean.component}" />
                        <h:message for="msgEnviando" />

                    </div>

                    <div style="float: right;">
                        <a4j:commandButton id="submitbutton" styleClass="Button"
                            value="Enviar" action="#{produtosBean.EnviarLote()}"
                            render="out" execute="editPaneEnviarLote"
                            oncomplete="if (#{facesContext.maximumSeverity==null}) {#{rich:component('editPaneEnviarLote')}.hide();}">
                        </a4j:commandButton>

                        <a4j:commandButton styleClass="Button" style="margin-left:10px;"
                            value="Cancelar"
                            onclick="#{rich:component('editPaneEnviarLote')}.hide(); return false;" />
                    </div>
                    <div style="position: absolute;">
                        <a4j:status>
                            <f:facet name="start">
                                <h:graphicImage value="./img/loader.gif" alt="ai" />
                            </f:facet>
                        </a4j:status>
                    </div>
                </div>

                <h:panelGrid columns="3" id="editGridEnviarLoteButton">

                </h:panelGrid>
            </rich:popupPanel>


            <!-- EXPURGAR LOTE -->
            <rich:popupPanel header="Expurgar Lote" id="editPaneExpugarLote"
                autosized="true" domElementAttachment="form">
                <h:panelGrid columns="1" id="editGridExpugarLote">

                    <h:outputText value="Deseja expurgar o lote?" />

                </h:panelGrid>
                <div style="margin-left: 225px;">
                    <a4j:commandButton styleClass="Button" value="Expurgar"
                        action="#{produtosBean.expurgarLote()}" render="table"
                        execute="editPaneExpugarLote"
                        oncomplete="if (#{facesContext.maximumSeverity==null}) {#{rich:component('editPaneExpugarLote')}.hide();}" />
                    <a4j:commandButton styleClass="Button" style="margin-left:10px;"
                        value="Cancelar"
                        onclick="#{rich:component('editPaneExpugarLote')}.hide(); return false;" />
                </div>
            </rich:popupPanel>
 </h:form>
        </div>




 </div>
</center>
</body>
</html>
  • 1

    Without posting your code and without telling you what you’re trying to do, it’s hard for anyone to help you.

  • From what you say, it was something you changed in the code that creates the layout. Try undoing your changes one by one until you find the problem. See: How to create a Minimum, Complete and Verifiable example.

1 answer

2

I’ve had this problem. I solved it this way:

between the tags ... I put the following code:

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

in my case I had to put on each page that uses the template:

 <ui:decorate template="/pages/template.xhtml">
        <ui:define name="container">
        <f:metadata>
            <f:event type="preRenderView" listener="#{homeMB.init()}"/>
        </f:metadata>

Now.. in Java, if your init() method has @Postconstructor, remove this annotation and put the code string inside:

public void init() {
        if (!FacesContext.getCurrentInstance().isPostback()){

                      //faz algo...
        }
}

That solved my problem. See if any of this helps you.

Hug.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.