Problema com JasperReports - JasperViewer.viewReport

E ai galera.

Depois de mto tempo quebrando a cabeça, meio q aprendi a usar o JasperReports e o iReports.
Segui o tutorial do GUJ para gerar o arquivo .PDF, até ai tudo bem.

O problema está na hora de visualizá-lo. Quando chamo o procedimento JasperViewer.viewReport(), acontece a seguinte exceção:

Exception in thread "main" net.sf.jasperreports.engine.JRException: Error loading object from file : sigma_tecnicos.pdf
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92)
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:64)
        at net.sf.jasperreports.view.JRViewer.loadReport(JRViewer.java:1380)
        at net.sf.jasperreports.view.JRViewer.<init>(JRViewer.java:243)
        at net.sf.jasperreports.view.JRViewer.<init>(JRViewer.java:214)
        at net.sf.jasperreports.view.JasperViewer.<init>(JasperViewer.java:140)
        at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:397)
        at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:328)
        at sigma2.RelatorioTec.GeraRelatorio(RelatorioTec.java:43)
        at sigma2.RelatorioTec.main(RelatorioTec.java:49)
Caused by: java.io.StreamCorruptedException: invalid stream header: 25504446
        at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:87)
        ... 9 more

Meu código é o seguinte:


package sigma2;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;
import java.sql.*;
import java.util.*;

/**
 *
 * @author User
 */
public class RelatorioTec {
    
    /** Creates a new instance of RelatorioTec */
    public RelatorioTec() {
    }
    
    public void GeraRelatorio() throws JRException, Exception {
            conexaoMySQL conecta = new conexaoMySQL();
            conecta.init("guest", "guest");
        
            
            Statement stmt = conecta.getMyConnection().createStatement();
            String query = "SELECT * from sigma JOIN (tecnico) ON (sigma.tecnico1=tecnico.t_cod)";
            ResultSet rs = stmt.executeQuery(query);
            
            JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
            
            Map parameters = new HashMap();
            
            //JasperFillManager.fillReportToFile("sigma_tecnicos.jasper", parameters, jrRS );
            
            JasperRunManager.runReportToPdfFile("sigma_tecnicos.jasper", parameters, jrRS);
            
            JasperViewer.viewReport( "sigma_tecnicos.pdf", false );
            
    }
    
    public static void main(String[] args) throws JRException, Exception
   {
       new RelatorioTec().GeraRelatorio();
   }
    
}

Detalhe que ele chega a gerar o pdf, tanto que acessando a pasta do projeto pelo explorer o pdf esta lá, e consigo visualizá-lo normalmente pelo Acrobat. Alguém tem alguma dica? Por favor, é meio que urgente :slight_smile:

Abraços

Olá rafael.pierre!

Eu faço assim: (vou colocar os teus dados)


  JasperPrint jasperPrint = JasperFillManager.fillReport("sigma_tecnicos.jasper", parameters, jrRS ); 

 //isto mostra.te o viewer, assim a pessoa escolhe o formato em que quer gravar, e o sitio onde gravar  
  JasperViewer jrviewer = new JasperViewer(jasperPrint, false);  
  jrviewer.setVisible(true);   

Espero que dê certo :slight_smile:

ola pessoal tb tenho o mesmo prob!