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();
da uma revisada nos campos do seu relatorio, aparentemente ta com tipo diferente do que vc ta passando pela sua aplicação
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.
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.
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
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.
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