Problemas com relatorio ireport

5 respostas
K

Boa tarde galera,

Estou utilizando o ireport, criei o formulario e está tudo bem ate ai. Quando mando gerar ele da essa mensagem:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester at org.medclinic.gui.FormAdminDistribuidor$ActionImprimirDistribuidorEscolhido.actionPerformed(FormAdminDistribuidor.java:1253) at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) at javax.swing.DefaultButtonModel.setPressed(Unknown Source) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) ... 26 more

Eu gero o relatorio apatir de um botão que busca a linha de comando de busca do arquivo jrml no meu pc.

private static final String arquivos = "e:/desktop/programas/";

Eu utizo o codigo abaixo para gerar o relatorio

private class ActionImprimirDistribuidorEscolhido implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent arg0) {

			if (distribuidorTextNomeFantasiaProc.getText().length() == 0) {
				JOptionPane.showMessageDialog(null,
						"Nome do distribuidor não informado", "Erro!",
						JOptionPane.ERROR_MESSAGE);
				return;
			} else {
			
				conexao(); 
		    	String arq = DataBaseOperations.[b]arquivos[/b]()+"FormAdminDistribuidor-Distribuidor.jrxml";   
		   	
		    	idParametro = 0;
				idParametro = Integer.parseInt(distribuidorTextNumeroProc.getText());
					
				Map<String, Object> parametros = new HashMap<String, Object>();   
				parametros.put("id", idParametro);  
				
		    	InputStream input = null;
				try {
					input = new FileInputStream(new File(arq));
				} catch (FileNotFoundException e3) {
					// TODO Auto-generated catch block
					e3.printStackTrace();
				}   
		    	JasperDesign design = null;
				try {
					design = JRXmlLoader.load(input);
				} catch (JRException e2) {
					// TODO Auto-generated catch block
					e2.printStackTrace();
				}   
		    	JasperReport report = null;
				try {
					report = JasperCompileManager.compileReport(design);
				} catch (JRException e1) {
					// TODO Auto-generated catch block
					e1.printStackTrace();
				} 
		    	JasperPrint impressao = null;
				try {
					impressao = JasperFillManager.fillReport(report, parametros, con);
				} catch (JRException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}   
		    	JasperViewer viewer = new JasperViewer(impressao,false);   
		    	viewer.setVisible(true);  

							
			}
		}
	}

Alguem poderia me dar uma forcinha, da complicado resolver isso. O codigo antes funcionava e tem tempo que nao utilizo o Java agora nao sei oq está acontecendo.
Abrs

5 Respostas

zoren

está faltando o jar do commons digester

coloca ele no su classpath que funciona

TheKill

Realmente… aparenta ser apenas o jar do Commons Digester mesmo…

Att. Jonas

Fernando_Generoso_da

Uma questão muito importante de se observar é que muitas vezes apenas colocando o jar necessário, não basta…tem que se ter as dependências da dependência. isso é meio chato, mas se tu fazer uma busca, no site de onde vc está baixando sua dependência, ou procurar nos repositórios do maven, os arquivos pom e verificar quais são as dependências necessárias, esses erros não mais acontecerão. Utilizar o Maven ou qualquer outro gerenciador de dependências acaba com esse tipo de problema. Ou na pior das hipoteses é executar, ver o q esta faltando, baixar, colocar no calsspath…e assim sucessivamente até não dar mais erro…

Abraço

K

Pois é nao funcionou, adicionei o jar que foi dito e persistiu o erro.
Ta complicado resolver isso, o que me intriga é que antes funcionava, ai agora fui retomar o programa e dando problema.
Se alguem descobrir o problema me da ideia ai.

abrs

K

resolvido o problema.
Primeiro coloquei no classpath o ireport.jar, ai deu outro problema e adicionei todos os jar da pasta do ireport e resolvido.

Abrs galera e vlw a ajuda

Criado 3 de dezembro de 2009
Ultima resposta 10 de dez. de 2009
Respostas 5
Participantes 4