Java.lang.ExceptionInInitializerError

5 respostas
martui
:scrambleup: Gente, estou tentando gerar um relatório e ando tendo um problema sério. O código que chama o relatório (que foi compilado sem problemas) está aí embaixo. Os dados vêm de um arquivo separado por vírgula. Já fiz esse relatório funcionar, mas não sei exatamente o que mudei e ele passou e dar uma exceção que eu desconheço. Apesar de termos um try/catch pegando Exception, a exceção não é pega e é lançada para a saída do sistema. Eis a exceção e o trecho de código:
"Saída do sistema":
java.lang.ExceptionInInitializerError at dori.jasper.engine.fill.JRFiller.fillReport(JRFiller.java:150) at dori.jasper.engine.JasperFillManager.fillReport(JasperFillManager.java:350) at dori.jasper.engine.JasperManager.fillReport(JasperManager.java:882) at meuPacote.ActionHandler.gerarEExibirRelatorio(ActionHandler.java:814) at meuPacote.ActionHandler.actionPerformed(ActionHandler.java:178) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100) Caused by: org.apache.commons.logging.LogConfigurationException: java.lang.NullPointerException at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:558) at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:355) at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:390) at dori.jasper.engine.fill.JRBaseFiller.<clinit>(JRBaseFiller.java:121) ... 29 more Caused by: java.lang.NullPointerException at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:543) ... 32 more
try{
    		JasperReport report = JasperManager.loadReport(CaminhosDeArquivos.RELATORIO);
    		
    		Map parameters = new HashMap();
    		
    		parameters.put("a", a);
    		parameters.put("b", b);
    		
    		System.out.println(parameters);
    		
    		JasperPrint print = JasperManager.fillReport(report, parameters, 
    				new MyData(CaminhosDeArquivos.DADOS));
    		
    		JasperViewer.viewReport(print, false);
    	}
    	catch(Exception exception){
    		System.err.println("Erro gerando ou exibindo relatório.");
    	}

Os detalhes:
:arrow: Uso Jasper Reports, iReport, JDK1.4.2 e Eclipse

Alguém pode ajudar?

5 Respostas

aborges

Nao esta passando no catch pq esta excessao nao extende a Exception…

Da uma olhada na documentacao dela q quem sabe ajude: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ExceptionInInitializerError.html

martui

:scrambleup: Bom, agora entendi isso… Não sabia de que havia classes com o sufixo Exception que extendiam Error… Entendi também que o erro provavelmente está em um static initializer (pela documentação da exceção). Mas… Não entendi a razão dela ter sido lançada…

Outros detalhes:
:arrow: na exceção, a linha no StrackTrace com a frase “at meuPacote.ActionHandler.gerarEExibirRelatorio(ActionHandler.java:814)” corresponde à seguinte instrução (no trecho de código que eu enviei): JasperPrint print = JasperManager.fillReport(report, parameters, new MyData(CaminhosDeArquivos.DADOS));
:arrow: Uso o JasperReports 0.5.2

aborges

A chamada estatica é exatamente esta !

JasperManager.fillReport

Tenta dar uma debugada pra ver qual o problema!

jcranky

Não há. Neste caso, o sufixo é Error. Exception é só parte do nome do erro (por isso a confusão). :wink:

martui

:scrambleup: Falta de atenção minha…

Resolvi o problema… Meu Eclipse estava configurado para rodar usando umas bibliotecas do J2EE. Voltei pro JRE1.4.2 e funcionou…

Criado 26 de agosto de 2004
Ultima resposta 26 de ago. de 2004
Respostas 5
Participantes 3