[RESOLVIDO]Cannot create a session after the response has been committed - Erro estranho

1 resposta
E

Pessoal,

estou rodando o meu arquivo listagem.xml, só que esta dando o erro , que não estou conseguindo identificar:

GRAVE: Error Rendering View[/listagem.xhtml]

java.lang.IllegalStateException: Cannot create a session after the response has been committed

at org.apache.catalina.connector.Request.doGetSession(Request.java:2725)

at org.apache.catalina.connector.Request.getSession(Request.java:2235)

at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:899)

at com.sun.faces.context.ExternalContextImpl.getSession(ExternalContextImpl.java:155)

at com.sun.faces.renderkit.ServerSideStateHelper.writeState(ServerSideStateHelper.java:175)

at com.sun.faces.renderkit.ResponseStateManagerImpl.writeState(ResponseStateManagerImpl.java:122)

at com.sun.faces.application.StateManagerImpl.writeState(StateManagerImpl.java:166)

at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)

at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:418)

at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)

at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)

at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)

at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)

at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)

at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)
<!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">
<h:head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
	<title>Cadastro</title>
</h:head>
<h:body>
      <h:form>
         <h:messages />
         <h:dataTable value = "#{usuarioBean.lista}" var="usuario" rules="rows" cellpadding="7">
             <f:facet name="caption">
             teste teste teste
             </f:facet>
             
            <f:facet name="header">Listagem de usuario Cadastrados</f:facet>
            <f:facet name="footer">Final da Listagem</f:facet>
            
            <h:column>
               <f:facet name="header">identificação</f:facet>
               #{usuario.idUsuario}
            </h:column>

            <h:column>
                <h:commandLink action="#{usuarioBean.active}">
                	<h:graphicImage library="img" name="estatus_#{usuario.estatus}"></h:graphicImage>
                </h:commandLink>
            </h:column>

            <h:column>                
                	<h:graphicImage library="img" name="#{usuario.idioma}"></h:graphicImage>
                
            </h:column>


            <h:column>
               <f:facet name="header">Nome</f:facet>
               #{usuario.nome}
            </h:column>
         
            <h:column>
               <f:facet name="header">E-mail</f:facet>
               #{usuario.email}
            </h:column>
         
            <h:column>
            <f:facet name="header">Editar</f:facet>
              <h:commandLink action="#{usuarioBean.edit}">
                 <h:graphicImage library="img" name="edit.png" style="border:0"></h:graphicImage>
                 <f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}"></f:setPropertyActionListener>
                 <f:setPropertyActionListener target="#{usuarioBean.destino}" value="listagem"></f:setPropertyActionListener>
              </h:commandLink>
            </h:column>    
            
            
            <h:column>
              <h:commandLink action="#{usuarioBean.delete}">
                 <h:graphicImage library="img" name="delete.png" style="border:0"></h:graphicImage>
                 <f:setPropertyActionListener target="#{usuarioBean.usuario}" value="#{usuario}"></f:setPropertyActionListener>
              
              </h:commandLink>
            </h:column>  
                             
         </h:dataTable>
         
      </h:form>

</h:body>

</html>


package bean;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

import dao.UsuarioRN;

import banco.BancoDeClientes;

import modelo.Cliente;
import modelo.Usuario;

@ManagedBean(name = "usuarioBean")
@RequestScoped
public class UsuarioBean {
	
	private Usuario usuario = new Usuario();
	BancoDeClientes bdc = new BancoDeClientes();
	private String confirmarsenha;
	private String destino;
	private List<Usuario> lista;
	
	
	
	public String novo(){
		//destino = "UsuarioCadastrado";
		usuario = new Usuario();
		usuario.setEstatus(true);
		return "usuario";
	}
	

	public String salvar(){
		FacesContext context = FacesContext.getCurrentInstance();
		String senha = usuario.getSenha();
		if (! senha.equals(confirmarsenha)){
			FacesMessage facesMessage = new FacesMessage("Erro: senha e confirmação da senha diferentes");
			context.addMessage(null, facesMessage);
			return null;
		}
		bdc.salvaruser(usuario);
		return "UsuarioCadastrado";
		//return destino;
	}
	
	public List<Usuario> getLista(){
		if (lista == null) {
			 UsuarioRN usuarioRN = new UsuarioRN();
			 lista = usuarioRN.listar();	
			   
		}
		return lista;
	}
	
	 public String getDestino() {
		return destino;
	}

	public void setDestino(String destino) {
		this.destino = destino;
	}

	public String getconfirmarsenha() {  
	        return confirmarsenha;  
	    }
	 
	    public void setconfirmarsenha(String confirmarsenha) {  
	        this.confirmarsenha = confirmarsenha;  
	    }  	 
	
   public Usuario getUsuario(){
       return usuario;
    }

    public void setUsuario (Usuario usuario){
       this.usuario = usuario;
    }     

}

1 Resposta

E

Coloquei isso no web.xml e parou…

view plaincopy to clipboardprint?

<context-param>     
<param-name>com.sun.faces.writeStateAtFormEnd</param-name>     
<param-value>false</param-value>     
</context-param>

Nas minhas pesquisas na net muitos diziam que era problema do glassfish testa ai vê se funciona…

Criado 5 de outubro de 2012
Ultima resposta 5 de out. de 2012
Respostas 1
Participantes 1