[RESOLVIDO] Erro Ireport
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.
Alguem sabe me dizer que erro é esse? Ele compila sem erro nenhum mas na hora de executar acontece isso...
Obrigado.
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
Victor Bello
Curtidas 0
Respostas
Douglas Eric
12/08/2011
isso nao é java basico.
isso vai em frameworks
GOSTEI 0
Douglas Eric
12/08/2011
Desculpe.
Alguem sabe o que poderia estar causando este erro?
GOSTEI 0
Douglas Eric
12/08/2011
provavelmente você esqueceu de incluir no classpath algum dos jars necessários
GOSTEI 0
Douglas Eric
12/08/2011
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?
GOSTEI 0
Douglas Eric
12/08/2011
depende dos jars.
essas bibliotecas nunca tem nem 1mb.
então não é grande coisa
GOSTEI 0
Douglas Eric
12/08/2011
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
GOSTEI 0
Douglas Eric
12/08/2011
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]"
GOSTEI 0
Douglas Eric
12/08/2011
Bom, eu consegui uma pequena melhora, mudei de erro; rsrs
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 =/
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
GOSTEI 0
Douglas Eric
12/08/2011
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
GOSTEI 0
Douglas Eric
12/08/2011
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]
GOSTEI 0
Douglas Eric
12/08/2011
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.
GOSTEI 0
Douglas Eric
12/08/2011
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
GOSTEI 0
Douglas Eric
12/08/2011
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.
GOSTEI 0
Douglas Eric
12/08/2011
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
GOSTEI 0
Douglas Eric
12/08/2011
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?
GOSTEI 0
Douglas Eric
12/08/2011
huuuuum
vou apostar que você está usando o eclipse então.
bom, abre o seu jar e vê se suas bilbiotecas estão já dentro.
eu não use o eclipse faz séculos, então não sei te dizer
GOSTEI 0
Douglas Eric
12/08/2011
é isso mesmo, ta tudo la direitinho. valeu novamente.
Pra que eu nao precise ficar copiando o arquivo .jasper pra onde ta o .jar, tem algum lugar que de pra compilar ele junto?
__________
Cara, 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.
GOSTEI 0