Fórum [RESOLVIDO] Erro Ireport #568407

12/08/2011

0

Oi. Estou tentando criar um arquivo pdf usando o ireport, é a primeira vez que faço isso e estou tendo mtas dificuldades, qdo eu compilei a seguinte classe deu erro, segue a classe e o erro que tive.
package tests.report.bean;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

public class Teste {

	 private void createReportBean() {
		 
		 String caminhoRelJasper = "report1.jasper";                       
         InputStream reportFile = getClass().getResourceAsStream(caminhoRelJasper); 
         List<PessoaBean> lista = new ArrayList<PessoaBean>();

         PessoaBean bean1 = new PessoaBean();
         bean1.setNome("Pessoa Um");
         bean1.setIdade(23);
		
         PessoaBean bean2 = new PessoaBean();
         bean2.setNome("Pessoa Dois");
         bean2.setIdade(38);
		
         lista.add(bean1);
         lista.add(bean2);
		
         JRDataSource jrds = new JRBeanCollectionDataSource(lista);
		
         try {
              JasperFillManager.fillReportToFile(
                   "report1.jasper", // Caminho onde está o relatório compilado
                   null, 
                   jrds
              );
			
              // PDF
              JasperExportManager.exportReportToPdfFile(
                   "ReportBeanTest.jrprint", // Caminho onde está o relatório preenchido
                   "ReportBeanTest.pdf" // Caminho onde será gerado o pdf
              );
          }
          catch(Exception ex) {
              ex.printStackTrace();
          }
    }
	 
	 
	 public static void main(String args[])
	 {		 
		 new Teste().createReportBean();
	 }
	
}

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
	at java.lang.Class.getConstructor0(Unknown Source)
	at java.lang.Class.newInstance0(Unknown Source)
	at java.lang.Class.newInstance(Unknown Source)
	at net.sf.jasperreports.engine.JasperCompileManager.getCompiler(JasperCompileManager.java:469)
	at net.sf.jasperreports.engine.JasperCompileManager.loadEvaluator(JasperCompileManager.java:235)
	at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:424)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:430)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:78)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:58)
	at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142)
	at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:78)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
	at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:513)
	at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:465)
	at tests.report.bean.Teste.createReportBean(Teste.java:33)
	at tests.report.bean.Teste.main(Teste.java:53)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.control.CompilationFailedException
	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)
	... 19 more
Alguem sabe me dizer que erro é esse? Ele compila sem erro nenhum mas na hora de executar acontece isso... Obrigado.
Victor Bello

Victor Bello

Responder

Posts

13/08/2011

Douglas Eric

isso nao é java basico. isso vai em frameworks
Responder

Gostei + 0

14/08/2011

Douglas Eric

Desculpe. Alguem sabe o que poderia estar causando este erro?
Responder

Gostei + 0

14/08/2011

Douglas Eric

provavelmente você esqueceu de incluir no classpath algum dos jars necessários
Responder

Gostei + 0

14/08/2011

Douglas Eric

eu inclui uns 5 jars, depois eu posto aki quais foram... Só uma pergunta em relaçao a colocar os jars no projeto... qdo eu exportar o programa, nao ficaria mto grande importanto isso tudo de arquivo?
Responder

Gostei + 0

14/08/2011

Douglas Eric

depende dos jars. essas bibliotecas nunca tem nem 1mb. então não é grande coisa
Responder

Gostei + 0

15/08/2011

Douglas Eric

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: \ReportBeanTest.jrprint
	at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:94)
	at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromFile(JRLoader.java:83)
	at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:97)
	at tests.report.bean.Teste.createReportBean(Teste.java:40)
	at tests.report.bean.Teste.main(Teste.java:53)
Caused by: java.io.FileNotFoundException: \ReportBeanTest.jrprint
	... 5 more
Coloquei esse groovy-all-1.7.5.jar e "funcionou" mas agora da esse erro acima. Os jars que eu importei para o projeto foram: commons-collection-3-2-1.jar commons-beanutils-1.8.2.jar commons-javaflow-20060411.jar commons-logging-1.1.jar commons-digester-1.7.jar jasperreports-4.1.1.jar commons-logging-1.1.jar groovy-all-1.7.5.jar precisa desses todos mesmo?
Responder

Gostei + 0

15/08/2011

Douglas Eric

precisa de todos eles sim. esse erro... "[url=http://javafree.uol.com.br/topic-882405-FAQ-Stack-Trace.html?page=1#201708]java.io.FileNotFoundException[/url]"
Responder

Gostei + 0

15/08/2011

Douglas Eric

Bom, eu consegui uma pequena melhora, mudei de erro; rsrs
Exception in thread "main" java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException
	at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:117)
	at net.sf.jasperreports.engine.JasperExportManager.exportReportToPdfFile(JasperExportManager.java:99)
	at tests.report.bean.Teste.createReportBean(Teste.java:42)
	at tests.report.bean.Teste.main(Teste.java:55)
Caused by: java.lang.ClassNotFoundException: com.lowagie.text.DocumentException
	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)
	... 4 more

Ja coloquei no classpath os jars do itext mas também nao rolou. sekkuar, entao, soh nesses jars que importei acima, ja da mais de 8mb. só esse groovy são 5mb =/
Responder

Gostei + 0

15/08/2011

Douglas Eric

cacilda! por isso eu não uso o ireport. esse erro agora, é problema de versão. você colocou o jar de uma versão errada do iText pelo que eu me lembre, os que tem o pacote com.lowagie são uma versão muito antiga. nas mais novas eles mudaram para com.itext
Responder

Gostei + 0

15/08/2011

Douglas Eric

Faltou adicionar o API do iText no classpath da sua aplicação. Caso queria ter um controle maior das APIs, dê uma estudada no [url=http://maven.apache.org/]maven[/url]
Responder

Gostei + 0

15/08/2011

Douglas Eric

dificil... sabe onde eu acho essa versao do itext? Cara, eu quero fazer algo bem simples, gerar um arquivo .doc ou pdf que tem um modelo e trocará em alguns lugares de acordo com o que foi buscado, mas será sempre apenas 1 usuario. por exemplo, a pessoa inserir o usuario victor, 19 anos, bla bla bla eu vou ter um modelo que vai ter nome: <nome> idade: <idade> e a consulta vai retornar apenas 1 pessoa. porém, eu queria isso formatado. alguem sabe como eu poderia fazer isso de outra maneira sem usar o ireport? Valeu.
Responder

Gostei + 0

15/08/2011

Douglas Eric

eu fiz usando openoffice. mas se você acha que ireport é complicado e gasta muito espaço no pc do usuário, então nem pense nisso XD aqui: é versão 2.1.7 que você precisa http://olex.openlogic.com/packages/itext/2.1.7
Responder

Gostei + 0

15/08/2011

Douglas Eric

P*#$@ CARA!! GEROU, valeu man!!!!! *.* só uma coisa, qdo eu exportar meu arquivo, ele vai ficar com uns 15~20mb -.-' o que poderia ser feito pra que ele nao passasse de 5mb? pq importar tudo isso de api acabou deixando ele mto grande. O problema nao é nem o arquivo ser grande pra executar, mas é que ele fica na rede, e qdo for carregar vai acabar demorando um pouco, né? novamente, muito obrigado pela ajuda.
Responder

Gostei + 0

15/08/2011

Douglas Eric

quando for carregar? você quer dizer, deixar o .jar na rede e todo mundo executar o mesmo? não tem problema não. A JVM só vai carregar as classes qaundo elas forem necessárias, então não vai primeiro carregar todos os 20mb pra depois executar, pode ficar sossegado. Mas, pra não ter trocentas mil libs pra ficar copiando, talvez você queira juntar as libs no mesmo jar. sei la, so uma sugestão
Responder

Gostei + 0

15/08/2011

Douglas Eric

Então, quando eu gero o arquivo .jar do meu projeto eu vou em : export -> runnable jar file -> package required libraries into genarete jar. seria isso mesmo neh? ai ficariam todos as libs que usei ja no jar que gerei, correto?
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar