IllegalStateException com jasper reports

[code]QUE ERRO É ESTE QUANDO CHAMO O RELATORIO, MAS A BAIXO TEM O MEU METODO

java.lang.IllegalStateException: Servlet response already use stream, Writer not possible
at org.ajax4jsf.webapp.FilterServletResponseWrapper.getWriter(FilterServletResponseWrapper.java:207)
at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:112)
at com.sun.facelets.FaceletViewHandler.createResponseWriter(FaceletViewHandler.java:414)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:571)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)

METODO

@Name(“classesRel”)
public class Relatorio{

public void mensalidadesVendias(){
	
	System.out.print("testando metodo");

try {
	String reportPath = ("/WEB-INF/relatorios/usuarioRel.jasper");
	
	FacesContext facesContext = FacesContext.getCurrentInstance();
	ServletContext servletContext = (ServletContext) facesContext.getExternalContext().getContext();
	String pathRel = servletContext.getRealPath(reportPath);
	HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
	ServletOutputStream outputStream = response.getOutputStream();
			
	List<Usuario> listaus = new ArrayList<Usuario>();
	UsuarioList usulista = new UsuarioList();
	
	listaus = usulista.getResultList(); 
	JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(listaus);
	
		JasperPrint print = JasperFillManager.fillReport(pathRel, null, ds);

		ByteArrayOutputStream output = new ByteArrayOutputStream();
		JasperExportManager.exportReportToPdfStream(print, output);
		
		response.setContentType("application/pdf");  
		response.addHeader("Content-Disposition", "inline;filename=usuarioRel.pdf");  
		response.setContentLength(output.size());  
		
		outputStream.write(output.toByteArray(), 0, output.size());  
		outputStream.flush();  
		outputStream.close();
		facesContext.responseComplete(); 
	} catch (Exception e) {
		System.out.println(e.getMessage());
	}

}

}

[/code]

       Tudo bom meu velho  ?

Posta aqui tudo relacionado a esse relatorio !

o Xhtml e as classes !

Vou da uma olhada para ver se ajudo !

jr666

essa parte do xhtml chama meu relatorio
ESTOU TENTANDO FAZER O PRIMEIRO RELAOTRIO BEM SIMPLES, PRA DEPOIS INICIAR COM OS OUTROS, AS ESTA DIFICIL, EM DESKTOP EU FACO BLZ MAS EM WEB :frowning:

[code]

    <h:form>
			<h:commandButton id="relatorioMensVencida" value="Visualizar Relatório" 
		action="#{classesRel.mensalidadesVendias}"></h:commandButton>
		</h:form>
    </div>  [/code]

ESSA 'E A CLASSE

@Entity
@Table (name="usuario")
public class Usuario implements Serializable{
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long usuarioId;
	
	@Basic 
	@NotNull
	private String login,senha;
	
	@Basic
	@NotNull
	private String ativo = "sim";
	
	@Basic
	@NotNull
	@Temporal(TemporalType.TIMESTAMP)
	private Date dataLogin = new Date();
	

	public Date getDataLogin() {
		return dataLogin;
	}

	public void setDataLogin(Date dataLogin) {
		this.dataLogin = dataLogin;
	}

	public String getAtivo() {
		return ativo;
	}

	public void setAtivo(String ativo) {
		this.ativo = ativo;
	}

	public Long getUsuarioId() {
		return usuarioId;
	}

	public void setUsuarioId(Long usuarioId) {
		this.usuarioId = usuarioId;
	}

	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}
	
	
}

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.protracking.controller;

import br.com.webtracking.dao.DaoGenerico;
import br.com.webtracking.entity.MapaTransporte;
import br.com.webtracking.entity.Transportadora;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.faces.context.FacesContext;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import org.hibernate.ejb.HibernateEntityManager;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

/**
 *
 * @author victor
 */
@Controller("relatorioMapaController")
@Scope(value = "session")
public class RelatorioMapaController implements Serializable {

    private MapaTransporte mapaTransporte;
    @Resource
    private DaoGenerico&lt;Transportadora, Integer&gt; transportadoraDao;
    @Resource
    private DaoGenerico&lt;MapaTransporte, Integer&gt; mapatransporteDao;
    @Resource
    private EntityManagerFactory entityManagerFactory;
    private Date data1;
    private Date data2;
    //atributos de paginação de resultados
 
    private DataModel model;
    private Map&lt;String, Object&gt; transportadoraItem = null;
    private String saida;
    private String transportadora;
    private Integer codtransporte;
    private DataModel modelTransp;

  


        public void selecionaTranspLista() {

        Transportadora t = getTranspParaImpr();

        transportadora = t.getDesc_nome();
        codtransporte = t.getCod_transporte();

    }

    public DataModel getTraspPesquisa() {
        String query = "SELECT t FROM Transportadora t WHERE t.isactive = true";
        return modelTransp = new ListDataModel(transportadoraDao.listPesq(query));

    }

    public Transportadora getTranspParaImpr() {
        Transportadora t = (Transportadora) modelTransp.getRowData();

        return t;
    }


    public String consultaMapa() {
        this.mapaTransporte = new MapaTransporte();
        data1 = new Date();
        data2 = new Date();
        return "goToimprimeMapa";

    }

    public String consulta() {
        //    this.mapaTransporte = new MapaTransporte();
        //    this.mapaTransporte.setTransportadora(new Transportadora());
        //   this.getTransportadoras();
        return "sucesso";

    }

  

    public void executarRelatorio() throws  SQLException, IOException, JRException {

        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();


        String jasper = getDiretorioReal("/reporter/mapa/mapatransporte.jasper");


        //pega o caminho do arquivo .jasper da aplicação
        InputStream reportStream = context.getExternalContext().getResourceAsStream(jasper);

        //envia a resposta com o MIME Type PDF
        response.setContentType("application/pdf");
        //envia para o navegador o PDF gerado



        try {
            EntityManager em = getEntityManagerFactory().createEntityManager();
            Connection connection = ((HibernateEntityManager) em).getSession().connection();
            ServletOutputStream servletOutputStream = response.getOutputStream();

            HashMap&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;();
            map.put("PAR_CODMAPA", mapaTransporte.getCod_mapa().intValue());
            map.put("SUBREPORT_DIR", getDiretorioReal("/reporter/mapa/") + "/");
            JasperPrint print = JasperFillManager.fillReport(jasper, map, connection);
      
              response.setHeader("Content-disposition",
                     "attachment;filename=Mapa-" + mapaTransporte.getCod_mapa() + ".pdf");

            JasperExportManager.exportReportToPdfStream(print, servletOutputStream);

     
            servletOutputStream.flush();
            servletOutputStream.close();

         //   connection.close();
         
          

        } catch (JRException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            //evita erro do JSF após completar
            //a geração do relatório
            //avisando o FacesContext que a resposta está completa
            context.responseComplete();


             FacesContext fc = FacesContext.getCurrentInstance();
             HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);


         //    session.removeAttribute("relatorioMapaController");

        }

    }

    private String getDiretorioReal(String diretorio) {
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        return session.getServletContext().getRealPath(diretorio);
    }

    private String getContextPath() {
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        return session.getServletContext().getContextPath();
    }

    private void preenchePdf(JasperPrint print) throws JRException {
// Pego o caminho completo do PDF desde a raiz
        saida = getDiretorioReal("/reporter/relatorio.pdf");
// Exporto para PDF
        JasperExportManager.exportReportToPdfFile(print, saida);
        /*
         * Jogo na variável saída o nome da aplicação mais o
         * caminho para o PDF. Essa variável será utilizada pela view
         */
        saida = getContextPath() + "/reporter/relatorio.pdf";
    }

    public RelatorioMapaController() {
    }


    // mostra todos os Pedidos a serem impressos em um dataTable
    // mostra todos os produtos em um DataTable
    //comprados com os respectivos clientes
    //limitados pela paginação
    @SuppressWarnings("unchecked")
    public DataModel getConsultaNotasMapa() {


        String query = " SELECT m " +
                " FROM MapaTransporte m " +
                " WHERE m.data_mapa BETWEEN :data1 AND :data2 " +
                " AND m.transportadora.cod_transporte = :cod_transporte";



       



        Map&lt;String, Object&gt; params = new HashMap&lt;String, Object&gt;();
        params.put(&quot;data1&quot;, new Timestamp(data1.getTime()));
        params.put(&quot;data2&quot;, new Timestamp(dataConvertida()));
        params.put(&quot;cod_transporte&quot;, codtransporte);

        return model = new ListDataModel(mapatransporteDao.listPesqParam(query, params));



    }

    public MapaTransporte getItemMapaParaImprimir() {
        MapaTransporte m = (MapaTransporte) model.getRowData();
        return m;
    }

    public String editarImprime() throws SQLException, IOException, JRException {
        setMapaTransporte(getItemMapaParaImprimir());
        executarRelatorio();

        return &quot;sucesso&quot;;
    }

    //método para a consulta a ser utilizada
    private String consultaNotas() {
        String query = &quot; SELECT m &quot; +
                &quot; FROM MapaTransporte m &quot; +
                &quot; WHERE m.data_prot BETWEEN :data1 AND :data2 &quot; +
                &quot; AND m.transportadora = :cod_transporte&quot;;
        return query;
    }


    //separa a pesquisa do total encontrado
//possibilitando a utilização também no relatório
    public List&lt;?&gt; todosResultsPesq() {


        Transportadora t = transportadoraDao.pesquisarPorId(mapaTransporte.getTransportadora().getCod_transporte());


        Map&lt;String, Object&gt; params = new HashMap&lt;String, Object&gt;();
        params.put("data1", new Timestamp(data1.getTime()));
        params.put("data2", new Timestamp(dataConvertida()));
        params.put("cod_transporte", t);

        return mapatransporteDao.listPesqParam(consultaNotas(), params);


    }


  

    //converte adicionando hora, minuto e segundo
    private long dataConvertida() {
        //adiciona a hora que não foi colocada no
        //intervalo de pesquisa
        GregorianCalendar gc1 = new GregorianCalendar();
        gc1.setTime(data2);
        gc1.add(GregorianCalendar.HOUR_OF_DAY, 23);
        gc1.add(GregorianCalendar.MINUTE, 59);
        gc1.add(GregorianCalendar.SECOND, 59);

        return gc1.getTimeInMillis();
    }

    //converte uma string para Timestamp
    private Timestamp convertTimestamp(String t) throws ParseException, java.text.ParseException {
        // trata nanoseconds "yyyy-mm-dd hh:mm:ss.nanoseconds"
        SimpleDateFormat sdfIn =
                new SimpleDateFormat("yyyy-MM-dd");
        return new Timestamp(sdfIn.parse(t).getTime());
    }

    public Date getData1() {
        return data1;
    }

    public void setData1(Date data1) {
        this.data1 = data1;
    }

    public Date getData2() {
        return data2;
    }

    public void setData2(Date data2) {
        this.data2 = data2;
    }

  

    public MapaTransporte getMapaTransporte() {
        return mapaTransporte;
    }

    public void setMapaTransporte(MapaTransporte mapaTransporte) {
        this.mapaTransporte = mapaTransporte;
    }

    public DaoGenerico&lt;Transportadora, Integer&gt; getTransportadoraDao() {
        return transportadoraDao;
    }

    public void setTransportadoraDao(DaoGenerico&lt;Transportadora, Integer&gt; transportadoraDao) {
        this.transportadoraDao = transportadoraDao;
    }

    public String getSaida() {
        return saida;
    }

    public void setSaida(String saida) {
        this.saida = saida;
    }

    public EntityManagerFactory getEntityManagerFactory() {
        return entityManagerFactory;
    }

    public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory) {
        this.entityManagerFactory = entityManagerFactory;
    }

    public Integer getCodtransporte() {
        return codtransporte;
    }

    public void setCodtransporte(Integer codtransporte) {
        this.codtransporte = codtransporte;
    }

    public String getTransportadora() {
        return transportadora;
    }

    public void setTransportadora(String transportadora) {
        this.transportadora = transportadora;
    }



}

aki nao seria

  JasperExportManager.exportReportToPdfStream(print, outputStream );  

não eu nunca erro porra !

[b]Nossa Colega, vai com calma preciso de explicacao passo á passo,
nao tenho experiencia, estou me formando ainda.

ja tentei de varias formar chamr o meu relátorio mas nao consigo, entao me ajuda passo á passo ???[/b]

esse eu nunca erro porra foi brincadeira menino !

Da uma lida no código !

Heim eu sou acostumado a usar NetBeans na faculdade.
Essas relatorios sao para um projeto teste que estou fazendo em uma empresa, entao tive que usar as ferramentas deles (Eclipse, Jboss, hibernate. JSF.etc.ect)
eu tenho facilidade em Desktop mas em web eu apanho.
Mas por ser Eclipse e Jboss, tem algo que torna mais pratico o desenvolvimento de relatorio ???
Em desktop eu desenvolvo mas chego nas parte de relatorio web (travei)

eae pessoal, alguem conseguiu desenrrolar esse problema de relatorio??

Abs.

Cara, uma pergunta… quando da esse erro, da só ele? Aí no teu console, não aparece nada mais acima disso não?

Esse erro é muito abrangente. Podem ser diversos problemas. Desde arquivo não encontrado (jasper) até problemas de parâmetro ou caminho.
No meu caso, já conferi tudo isso, e na aplicação rodando no Eclipse, funciona tudo normalzinho. Quando coloco a aplicação em .WAR no servidor, eu tenho acesso normal a tudo, mas quando chega na hora de exibir os relatórios, ele me dá esse erro:

Servlet response already use stream, Writer not possible

Vou tentar publicar a aplicação sem estar compactada para ver se dá esse erro ainda.

Bom dia a todos.

Oi. Evite postagens somente com letras maiúsculas, principalmente no título.
E evite também expressões como “Socorro”, “HELP”, etc…

Um título como “IllegalStateException com jasper reports.” seria muito mais útil.

Eae pessoal, nada??