JasperReports dúvida urgente!

2 respostas
S

Estou tentando fazer um relatório em java e criei esta classe:

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

import net.sf.jasperreports.engine.export.JRPdfExporter;

import net.sf.jasperreports.engine.*;

import java.util.HashMap;

public class Relatorio {

public static void main(String[] args) throws Exception {

              String reportFileName = "/addressbook.jasper";
              String outFileName = "/addressbook.pdf";
              String xmlFileName = "/addressbook.xml";
              String recordPath = "/Northwind/Customers";

              JRXmlDataSource jrxmlds = new JRXmlDataSource(xmlFileName,recordPath);

      HashMap hm = new HashMap();

      try
      {
          JasperPrint print = JasperFillManager.fillReport(
                      reportFileName,
                      hm,
                      jrxmlds);

          JRExporter exporter = new net.sf.jasperreports.engine.export.JRPdfExporter();

          exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,outFileName);
                  exporter.setParameter(JRExporterParameter.JASPER_PRINT,print);

                  exporter.exportReport();
                  System.out.println("Created file: " + outFileName);
      }
      catch (JRException e)
      {
          e.printStackTrace();
          System.exit(1);
      }
      catch (Exception e)
      {
          e.printStackTrace();
          System.exit(1);
      }

  }

}

ela compila corretamente mas quando executo ela apresenta a mensagem abaixo:

C:\j2sdk1.4.2_08\bin\java.exe  -classpath C:\j2sdk1.4.2_08\jre\lib\rt.jar;C:\j2sdk1.4.2_08\lib\tools.jar;C:\j2sdk1.4.2_08\jasperreports-0.6.6.jar;E: Relatorio

java.io.FileNotFoundException: \addressbook.jasper

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:74)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:343)

at Relatorio.main(Relatorio.java:22)
NESTED BY :

java.io.FileNotFoundException: \addressbook.jasper

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:74)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:343)

at Relatorio.main(Relatorio.java:22)
NESTED BY :

net.sf.jasperreports.engine.JRException: \addressbook.jasper

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:74)

at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:343)

at Relatorio.main(Relatorio.java:22)

Caused by: java.io.FileNotFoundException: \addressbook.jasper

 3 more

Finished executing

GOSTARIA DE SABER O QUE ESTÁ ACONTECENDO. PQ ELE NAUM GERA O RELATÓRIO EM PDF???

2 Respostas

D

Este erro é porque a classe não encontra o arquivo addressbook.jasper

Se estiver no mesmo diretorio da classe nao precisa colocar a barra na frente

onde declara o arquivo

String reportFileName = "/addressbook.jasper";
S

Nosso código:

import java.io.BufferedInputStream;

import java.io.File;

import java.io.FileInputStream;
import net.sf.jasperreports.engine.data.<em>;

import net.sf.jasperreports.engine.util.</em>;

import net.sf.jasperreports.engine.export.<em>;

import net.sf.jasperreports.engine.</em>;

import java.util.HashMap;

public class Relatorio {

public static void main(String[] args) throws Exception {

              String reportFileName = "addressbook.jasper";
              String outFileName = "addressbook.pdf";

      JRXmlDataSource jrxmlds = new JRXmlDataSource(new

BufferedInputStream(new
FileInputStream(“bd.xml”)),"/Northwind/Customers");

HashMap hm = new HashMap();

      try
      {
          JasperPrint print =

JasperFillManager.fillReport(reportFileName,hm,jrxmlds);

JRExporter exporter = new

net.sf.jasperreports.engine.export.JRPdfExporter();

exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,outFileName);
          exporter.setParameter(JRExporterParameter.JASPER_PRINT,print);

          exporter.exportReport();
          System.out.println("Created file: " + outFileName);
      }
      catch (JRException e)
      {
          e.printStackTrace();
          System.exit(1);
      }
      catch (Exception e)
      {
          e.printStackTrace();
          System.exit(1);
      }

  }

}

Problema apresentado:

C:\j2sdk1.4.2_08\bin\java.exe  -classpath

C:\j2sdk1.4.2_08\jre\lib\rt.jar;C:\j2sdk1.4.2_08\lib\tools.jar;C:\j2sdk1.4.2_08\jasperreports-0.6.6.jar;C:\j2sdk1.4.2_08\jdom.jar;E:\relatorio

Relatorio

org.xml.sax.SAXParseException: Document root element is missing.

at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)

at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)

at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)

at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)

at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)

at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)

at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:248)

at net.sf.jasperreports.engine.data.JRXmlDataSource.<init>(JRXmlDataSource.java:197)

at Relatorio.main(Relatorio.java:19)
NESTED BY :

org.xml.sax.SAXParseException: Document root element is missing.

at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)

at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)

at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)

at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
			at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
			at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:248)
			at net.sf.jasperreports.engine.data.JRXmlDataSource.&lt;init&gt;(JRXmlDataSource.java:197)
			at Relatorio.main(Relatorio.java:19)
NESTED BY :

net.sf.jasperreports.engine.JRException: Failed to parse the xml document

at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:250)

at net.sf.jasperreports.engine.data.JRXmlDataSource.<init>(JRXmlDataSource.java:197)

at Relatorio.main(Relatorio.java:19)

Caused by: org.xml.sax.SAXParseException: Document root element is missing.

at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3376)

at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3364)

at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:668)

at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)

at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
			at net.sf.jasperreports.engine.data.JRXmlDataSource.parse(JRXmlDataSource.java:248)
			... 2 more

Exception in thread “main” Finished executing

O QUE FAÇO AGORA??? HELP!!!

Criado 8 de maio de 2005
Ultima resposta 10 de mai. de 2005
Respostas 2
Participantes 2