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