[RESOLVIDO]Erro no Ireport

28 respostas
D

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

T

é alguma biblioteca que esta faltando…

joga no google que vai achar facil

D

Ja fiz isso nao achei nada

T

primeira pagina do google!

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

D

Mais não era o meu caso…

T

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

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

D

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.
T

onde vc esta setando objeto ds do tipo JRBeanCollectionDataSource ?

nao econtrei

D

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?

T

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

T

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.

T

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

D

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.

T

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

D

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

T

tente isso:

D

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.
T

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);
D

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…

T

tranquilo. soh coloque o topico como Resolvido :wink:

Att. Jonas Teixeira de Freitas

D

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?

T

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

D

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)
D

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”

D

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