[RESOLVIDO] Erro Ireport

12 respostas
T

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.

12 Respostas

J

Tenta colocar esse jar no seu classpath: groovy-all-1.5.5.jar
abraços!

T

valeu, tentarei na segunda feira, o codigo esta no meu trabalho…

só uma duvida, quando eu gerar o executavel desse programa, esses jar’s que eu adicionei, estarão todos a pasta do programa, o meu char nao ficara ‘um pouco grande demais’?

valeu.
assim que testar eu posto aqui se funcionou ou nao.

T

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 .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?

L

Cara, antes de mais nada: teu relatório tá mesmo feito em Groovy? Duvido muito, nunca vi ninguém usando isso :stuck_out_tongue:
Confere nas propriedades do iReport, altera a property “language” de Groovy pra Java.
E outra, vc tá preenchendo o arquivo report1.jasper; qual o “nome” dele mesmo dentro do arquivo? Será o nome usado na exportação do jrprint.
Suspeito que mudando o nome do teu arquivo fonte “jrprint” pra “report1.jrprint” já vá funcionar.
Abraço!

T

cara, achei a languagem no ireport tava com default mudei pra java, mudei tbm o nome do arquivo que voce falou e agora da esse erro:

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

é mais algum jar que tem q importar?

try {
              JasperFillManager.fillReportToFile(
                   "report1.jasper", // Caminho onde está o relatório compilado
                   null, 
                   jrds
                  
              );
              System.out.print("cheguei aki");
			
              // PDF
              JasperExportManager.exportReportToPdfFile(
                   "report1.jrprint", // Caminho onde está o relatório preenchido
                   "report1.pdf" // Caminho onde será gerado o pdf
              );
          }
          catch(Exception ex) {
              ex.printStackTrace();
          }
    }
L

Bom, isso quer dizer que o erro era aquele mesmo… hehe tamo no caminho!
Agora, PROVAVELMENTE, tá faltando os jars do iText.
http://www.lowagie.com/iText/

T

Não, nao foi…
adicionei todos os jars do itext e nao foi.

itext-xtra-5.1.1-javadoc.jar
itext-xtra-5.1.1.jar
itextpdf-5.1.1-sources.jar
itextpdf-5.1.1.jar
itextpdf-5.1.1-javadoc.jar
itext-xtra-5.1.1-sources.jar

outra coisa, eu fiz um teste de tirar o groovy do classpath ai voltou o primeiro erro. >.<

T

Queria agradecer a ajuda de todos, o problema foi resolvido.
Esse ultimo problema que deu foi uma incompatibilidade com a versão do itext, entao tive que baixar a versao 2.1.7.

Valeu

RESOLVIDO!

T

Pessoal, to com um probleminha, eu joguei os arquivos para o servidor, e um atalho para minha maquina, do atalho, eu consigo gerar o pdf normalmente, mas do servidor ou de uma outra maquina que puxe o atalho da erro.

O erro que aparece usando o e.getMessage() é “name”, ai eu coloquei o e.fillInStackTrace() e o e.getCause().

No fillIn~ aparece java.lang.IllegalArgumentException:name
no e.getCause() aparece null.
Entretanto, como eu disse isso acontece apenas nas outras maquinas, na minha funciona normal. Tem ideia do que pode ser isso?

Ja copiei o .jasper, renomeei, copiei os .jars para a pasta do java no servidor, nao faço ideia do que pode ser isso.

valeu.

L

Mestre, posta o stacktrace inteiro que é melhor… fica mais fácil de te ajudar.
E eu não entendi o que tu quis dizer com atalho da tua máquina ou de outra máquina puxando. Não tem endereço físico fixo no teu código, não?
Abraço!

T

Esse é o problema, só aparece isso.
Tipo, eu compilei o programa, e coloquei no servidor. O atalho desse programa que está na minha maquina, funciona perfeitamente, (gera direitinho o arquivo). Mas em outras maquinas e executando diretamente do servidor nao funciona, funciona apenas na minha maquina.

Como assim nao tem endereço fisico fixo no teu codigo?

valeu.

Deu esse erro, teoricamente nao deveria dar esse erro, pq se eu executo direto do meu pc, funciona, mas no servidor da esse erro, mto estranho isso.
Eu tenho que instalar o Ireport no servidor também?

T

Cara, estranhamente acho que resolveu o.O

Tinha um logotipo no meu modelo, eu coloquei o logo tipo junto com o .jasper e gerou o arquivo u.u
Vou tentar em outra maquina e edito aki. valeu

Criado 12 de agosto de 2011
Ultima resposta 16 de ago. de 2011
Respostas 12
Participantes 3