[RESOLVIDO]Erro no Ireport

28 respostas
diogoprosoft

Galera estou usando o Ireport 3.7.4 e na hora de gerar o pdf está dando o seguinte erro:
java.lang.ClassCastException: net.sf.jasperreports.engine.JasperReport cannot be cast to dori.jasper.engine.JasperReport
O que pode ser isso? Quando compilo meu .jasper roda perfeitamente!!!

28 Respostas

TheKill

é alguma biblioteca que esta faltando…

joga no google que vai achar facil

diogoprosoft

Ja fiz isso nao achei nada

TheKill

primeira pagina do google!

http://www.guj.com.br/posts/list/118769.java

diogoprosoft

Mais não era o meu caso…

TheKill

amigo, leia bem o topico. eh o mesmo problema sim…

ps.: passei a dica agora é contigo :wink:

diogoprosoft

Eu alterei o metodo de geração do relatorio vou colocar o codigo para vc dar uma olhada

final HashMap parametros = new HashMap();
		parametros.put("DT_Emissao", ed.getDT_Emissao());
		parametros.put("NR_Nota_Fiscal", ed.getNR_Nota_Fiscal());
		parametros.put("NR_Volumes", ed.getNR_Volumes());
		parametros.put("NR_Peso", ed.getNR_Peso());
		parametros.put("NM_Pessoa_Remetente", ed.getNM_Pessoa_Remetente());
		parametros.put("NM_Pessoa_Destinatario", ed.getNM_Pessoa_Destinatario());
		parametros.put("OID_Nota_Fiscal", ed.getOID_Nota_Fiscal());

		parametros.put("PATH_IMAGENS", Parametro_FixoED.PATH_IMAGENS);

		final InterfaceRelatorio relatorio = new RelatorioJasperImpl(response);
		relatorio.setNomeArquivo("etiquetaNF");
		relatorio.setPathImagem(Parametro_FixoED.PATH_IMAGENS);
		relatorio.setPathReport(Parametro_FixoED.PATH_RELATORIOS_JASPER);
		relatorio.listaRelatorioPdfParaByte(parametros,lista);

		final JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(lista);
		parametros.put("PATH_IMAGENS", getPathImagem());
		parametros.put("PATH_SUBREPORT", getPathReport());
		parametros.put("P_DTHORA_EMISSAO", new Date().toString());

		String url = getPathReport().replace("/", "\\")+getNomeArquivo() + ".jasper";
		final byte[] bytes = JasperRunManager.runReportToPdf(url , parametros);
		final String type = getContentType() != null ? getContentType() : "application/pdf";
		final String disposition = getContentDisposition() != null ? getContentDisposition() : "inline";

		response.setContentType(type);
		response.addHeader("Content-Disposition", disposition + ";filename=" + getNomeArquivo());
		response.setContentLength(bytes.length);
		ServletOutputStream servletOutputStream = response.getOutputStream();
		servletOutputStream.write(bytes, 0, bytes.length);
		servletOutputStream.flush();
		servletOutputStream.close();
		response.flushBuffer();

O erro agora é o seguinte

WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
TheKill

onde vc esta setando objeto ds do tipo JRBeanCollectionDataSource ?

nao econtrei

diogoprosoft

Não estou setando só quero passar os parametros do Map para o ireport pegando o $P{}

R

Ainda dando erro ou só akele warning?

TheKill

não vai funcionar se vc nao configurar no relatorio.

se vc tivece lido o topico que te postei saberia o motivo… Ou voce passa para o relatorio um array de 1 posição para ele determinar paginação. ou vc vai ter que mecher no relatorio para que ele nao entenda isso.

R

Se o erro continuar sendo o primeiro que ele colocou lá em cima,é problema de conflito dos jars do Ireport

TheKill

o erro é que ele nao esta passando collection e nem resultSet para o relatorio. para funcionar dessa forma através de MAP precisa configurar no relatorio para When no Data e tals. igual o topico que eu passei

R

E quanto a esse erro:

java.lang.ClassCastException: net.sf.jasperreports.engine.JasperReport cannot be cast to dori.jasper.engine.JasperReport

Isso é erro de versão.

TheKill

Sim, pode ser. Se ele tiver usado versão antiga do iReport com relatorio recompilado na nova versao e librarys antigas no projeto.

diogoprosoft

Aquele post que vc me passou não mostra como configurar o ireport para receber somente o MAP e o erro continua somente o warning.

TheKill

aparentemente parece que o post foi editado, se eu encontrar posto novamente o trecho de código. 1 momento

diogoprosoft

Eu não editei o post o unico link que vc me passou foi este
http://www.guj.com.br/posts/list/118769.java

TheKill

tente isso:

diogoprosoft

Que saco cara to quebrando a cabeça numa coisa que era pra ser muito fácil nunca apanhei tanto com relatorios sempre fiz de barbada so que agora estou em outra estrutura de sistema.
Continua dando o mesmo erro de ontem o ruim que não mostra nenhuma excecao, a unica é o warn.
Mais desde já te agradeço a ajuda memso.

WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
TheKill

esse teu erro ta mto estranho.

Nunca vi isso.
Faça um teste pra mim.

Coloque seu relatorio em C:
e faça o seguinte:

objeto hm = hashMap
ds = JRResultSetDataSource
relatorio = relatorio.EXTENSAO

JasperPrint jp = JasperFillManager.fillReport("C:/"+relatorio), hm, ds);
diogoprosoft

Consegui velho
fiz a sua ultima dica e alterei essa linha

final byte[] bytes = JasperRunManager.runReportToPdf(getPathReport() + "/" + getNomeArquivo() + ".jasper", parametros, ds);

para

final byte[] bytes = JasperRunManager.runReportToPdf(getPathReport() + "/" + getNomeArquivo() + ".jasper", parametros);

Valeu mesmo velho…

TheKill

tranquilo. soh coloque o topico como Resolvido :wink:

Att. Jonas Teixeira de Freitas

diogoprosoft

Só mais uma coisa ele abriu o relatorio porem abriu vazio sem os campos nem o formato, tem mais alguma coisa pra fazer? em que lugar deve ficar as informações no header?

TheKill

imaginei que fosse acontecer isso… tente as outras opcao que existe lah no When no Data

diogoprosoft

Também mostrou essa exceção

java.lang.IllegalStateException: getOutputStream() has already been called for this response
	at org.apache.catalina.connector.Response.getWriter(Response.java:610)
	at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:198)
	at org.apache.jasper.runtime.JspWriterImpl.initOut(JspWriterImpl.java:125)
	at org.apache.jasper.runtime.JspWriterImpl.flushBuffer(JspWriterImpl.java:118)
	at org.apache.jasper.runtime.PageContextImpl.release(PageContextImpl.java:188)
	at org.apache.jasper.runtime.JspFactoryImpl.internalReleasePageContext(JspFactoryImpl.java:118)
	at org.apache.jasper.runtime.JspFactoryImpl.releasePageContext(JspFactoryImpl.java:77)
	at org.apache.jsp.conhecimento.conI003_jsp._jspService(conI003_jsp.java:1461)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:662)
diogoprosoft

alterei todos os tipos lá em todos vem vazio quando nao da erro, putz agora que eu tava ficando novamente empolgado deu pau

R

A opção do ‘When no Data’ deve ser: “All Sections,no Detail”

diogoprosoft

Somente com o Map não consegui fazer então achei melhor fazer passando uma lista

Criado 22 de novembro de 2010
Ultima resposta 23 de nov. de 2010
Respostas 28
Participantes 3