Jaspereport em uma aplicação swing

6 respostas
fhsantos

Não estou conseguido exibir o relatório na minha aplicação, esta dando o seguinte erro:

java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.engine.base.JRBaseRectangle to field net.sf.jasperreports.engine.base.JRBasePen.penContainer of type net.sf.jasperreports.engine.JRPenContainer in instance of net.sf.jasperreports.engine.base.JRBasePen

segue um trecho do codigo:

InputStream isJasper =  new FileInputStream ("sisoficio/relatorios/RelOficiosExpedidos.jasper");  
                JasperReport relatoriosJasper = (JasperReport) JRLoader.loadObject( isJasper );	                
                JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
                               
                JasperPrint rel = null;
		try {
                    HashMap param = new HashMap();
                   // param.put("logotipo",path.getDirImages()+"brasao.gif");
                    rel = JasperFillManager.fillReport(relatoriosJasper, param, jrRS);
		} catch (JRException e) {
                    e.printStackTrace();
		}        
            
            JasperViewer viewer = new JasperViewer(rel,true);
            viewer.show();

6 Respostas

thiagocg

da uma revisada nos campos do seu relatorio, aparentemente ta com tipo diferente do que vc ta passando pela sua aplicação

fhsantos

Verifiquei os campos e estão todos ok. para tirar a duvida deixei apenas um campo do tipo string, mesmo assim dá o mesmo erro.

tecdanilo

Tive um problema igual, verifiquei que eu estava usando a lib jasperreports-1.3.0.jar quando o correto no meu caso seria utilizar a jasperreports-3.0.0.jar.
Espero que isto ajude.

marconato10

verifique se vc não tem dois jar do jasper em seu projeto, elimine o jar da versão mais velha ou desejada.
aconteceu comigo e resolvi desta maneira

M

Bom dia,

Eu coloquei todos os jars necessários, referentes ao ireport 3.7.5. Quando eu rodo em desktop funciona. Porém ao tentar rodar na web, através de uma servlet acontece o seguinte erro:

java.lang.NullPointerException

at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234)

at teste.RelatorioEstoqueAtual.geraRelatorio(RelatorioEstoqueAtual.java:4

at action.relatorios.EstoqueAtual.doPost(EstoqueAtual.java:47)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

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:29

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

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

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Unknown Source)

O estranho é porque se for em desktop, funciona perfeitamente.

Alguém sabe oque poderia ser?

Obrigado.

marconato10

Cara, de uma olhada na sua classe “RelatorioEstoqueAtual” na linha 4 ou “EstoqueAtual” linha 47, pois é ai que esta dando erro
Execute o código em modo debug e verifique, NullPointerException esta tentando acessar um objeto nulo, é simples

Criado 2 de outubro de 2008
Ultima resposta 29 de out. de 2010
Respostas 6
Participantes 5