[RESOLVIDO] Problema ao Gerar Relatório Jasper

2 respostas
TEX

Bom dia,

Estou tentando gerar um relatório criado no ireport e chama-lo pela classe, sem acesso a banco de dados.
O relatório que fiz no ireport é simples. Só para exibir mesmo.

Antes eu não estava conseguindo encontrar o arquivo, agora o erro é o seguinte:

[color=red]

[09/Jan/2012 10:37:33] digester.Digester ::: Parse Error at line 2 column 14: <Line 2, Column 14>: XML-20149: (Error) Element ‘jasperReport’ used but not declared.

org.xml.sax.SAXParseException: <Line 2, Column 14>: XML-20149: (Error) Element ‘jasperReport’ used but not declared.

at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:422)

at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:287)

at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:343)

at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:226)

at org.apache.commons.digester.Digester.parse(Digester.java:1745)

at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:239)

at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:226)

at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:214)

at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:203)

at br.com.testando.relatorios.beans.TesteJ.teste(TesteJ.java:97)

at br.com.testando.relatorios.beans.TesteJ.main(TesteJ.java:44)

net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException: <Line 2, Column 14>: XML-20149: (Error) Element ‘jasperReport’ used but not declared.

at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:243)

at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:226)

at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:214)

at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:203)

at br.com.testando.relatorios.beans.TesteJ.teste(TesteJ.java:97)

at br.com.testando.relatorios.beans.TesteJ.main(TesteJ.java:44)

Caused by: org.xml.sax.SAXParseException: <Line 2, Column 14>: XML-20149: (Error) Element ‘jasperReport’ used but not declared.

at oracle.xml.parser.v2.XMLError.flushErrorHandler(XMLError.java:422)

at oracle.xml.parser.v2.XMLError.flushErrors1(XMLError.java:287)

at oracle.xml.parser.v2.NonValidatingParser.parseDocument(NonValidatingParser.java:343)

at oracle.xml.parser.v2.XMLParser.parse(XMLParser.java:226)

at org.apache.commons.digester.Digester.parse(Digester.java:1745)

at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:239)

… 5 more

[/color]

Segue a classe:

package br.com.testando.relatorios.beans;

import java.io.InputStream;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import net.sf.jasperreports.engine.JRDataSource;

import net.sf.jasperreports.engine.JRException;

import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

import br.com.testando.relatorios.beans.RelatorioIframeEstacao;

import br.com.testando.relatorios.beans.ReportUtils;

import java.io.File;

import java.io.FileInputStream;

import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.design.JRDesignParameter;

import net.sf.jasperreports.engine.JasperPrint;  
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperCompileManager;  
import net.sf.jasperreports.engine.JasperFillManager;


public class TesteJ {
 
   public static void main(String[] args) {
       new TesteJ().teste();
   }
   
    public void teste() {
            List estacao = new ArrayList();
            for ( long i = 1; i <= 4; i++ ) {
                RelatorioEstacaoBean bean = new RelatorioEstacaoBean();
                bean.setCodigoFlu("12");
                bean.setNome( "Nome Cliente " + i );
                bean.setCodigoPlu("13456");
                estacao.add(bean);
            } 
            
            try {
                String caminhoPro = new File("").getCanonicalPath(); 
                caminhoPro = caminhoPro + "\\src\\br\\com\\testando\\relatorios\\jasper\\RelatorioEstacao.jrxml";
                
                File file = new File(caminhoPro);
                FileInputStream input = new FileInputStream(file);
                
                //converte o arquivo JRXML em JASPER, ou seja, compila o relatorio
                JasperReport report = JasperCompileManager.compileReport(input);  
                JasperPrint print = JasperFillManager.fillReport(report, null, new JRBeanCollectionDataSource(estacao));  
                
        } catch ( JRException exc ) {
                exc.printStackTrace();

            } catch ( Exception e ) {
                e.printStackTrace();
            }    
        }

}

Se alguém puder dar uma força.

2 Respostas

palerique

Já checou a versão das bibliotecas e a compatibilidade entre as versões?

Às vezes utilizamos tutoriais de uma versão e implementamos em outra que pode ser incompatível!

Também já tive problema com versões de bibliotecas que não “casavam” com as do projeto e tive que encontrar a versão ideal.

Fiz um teste rapido e obtive sucesso utilizando as seguintes bibliotecas:

commons-beanutils-1.8.0
commons-collections-2.1.1
commons-digester-1.7
commons-logging-1.0.4
groovy-all-1.7.5
iText-2.1.7
jasperreports-4.5.0
poi-3.7.20101029

Talvez a solução esteja por esse caminho!

TEX

Fala palerique,

Fiz um downgrade de algumas bibliotecas que ‘casaram’ com as do projeto e resolveu meu problema.
As lib’s que eu tive que mudar foram:

commons-beanutils-1.8.0 -> commons-beanutils-1.6.0
commons-collections-3.0 -> commons-collections-2.1.1

Valeu pela dica irmão :slight_smile: .

Criado 9 de janeiro de 2012
Ultima resposta 11 de jan. de 2012
Respostas 2
Participantes 2