Exemplo de preview do ireports/jasperreports na máq. client

Pessoal…depois de muito esforço, consegui montar um script para mostrar um relatório feito no ireports(jasperreports), porém, aconteceu uma coisa interessante, ao criar um servlet para mostrar o preview do relatório, quando um usuário vai visualizar o mesmo, ao invés deste ser visualizado na máquina do cliente, o sistema abre na meu servidor. Então, gerei um pdf e joguei no buffer do browser, forçando o mesmo ser aberto pelo adobe acrobat reader através do navegador, mas gostaria de saber se é possível o cliente visualizar o preview do próprio ireports ? Como fazer isto ? Eu teria que redirecionar…se alguém puder me passar o código…eu agradeço !!!

Segue abaixo o servlet que fiz:

package beans;

import dori.jasper.engine.;
import dori.jasper.engine.design.
;
import dori.jasper.engine.print.;
import dori.jasper.view.
;
import dori.jasper.*;

import java.io.;
import javax.servlet.
;
import javax.servlet.http.*;

import java.util.Map;

import java.util.Map;
import java.util.HashMap;

import java.sql.*;

public class Imprimir extends HttpServlet {

private static Connection con2 = null;

public void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
JRExporter exporter = null;
byte[] bytes = null;
Map parameters = new HashMap();

  String systemId = getServletContext().getRealPath(request.getServletPath());
  File directory = new File(systemId.substring(0, systemId.lastIndexOf(File.separator)-5));  //para tirar o nome do diretorio... (-5)

  try {
        //File reportFile = new File("c:\\empresas.jasper");
        File reportFile = new File(directory.getPath()+"\\ireports\\empresas.jasper");          
        JasperPrint jasperPrint = JasperManager.fillReport(reportFile.getPath(), null, getConexao());     //o null pode ser trocado pelo parameters

        bytes =JasperManager.runReportToPdf(reportFile.getPath(), null, getConexao());
       if ((bytes != null) && (bytes.length>0)) 
       {
         response.setHeader("application/pdf", "Content-Type");             
         response.setContentType("application/pdf");
         response.setContentLength(bytes.length);
         ServletOutputStream ouputStream = response.getOutputStream();
         ouputStream.write(bytes, 0, bytes.length);
         ouputStream.flush();
         ouputStream.close();
       }  

// JasperExportManager.exportReportToPdfFile(jasperPrint, “c:\farnetani.pdf”);

//AQUI É O ESQUEMA PARA VISUALIZA-LO PELO PREVIEW
// JasperViewer.viewReport(jasperPrint, true);

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

public static Connection getConexao(){
try{
DriverManager.registerDriver(new org.firebirdsql.jdbc.FBDriver());
con2 =DriverManager.getConnection(“jdbc:firebirdsql:localhost/3050:D:\Sistemas_Junior\CEBRAPA_7\Dados\CEBRAPA.GDB?lc_ctype=WIN1252”,“SYSDBA”,“masterkey”);
con2.setAutoCommit(true);
} catch (SQLException e){
System.out.println("Erro: " + (String)e.getMessage());
}
return con2;
}

}

Galera estou precisando de uma força…
Consigo gerar o relatorio para desktop… ele gerar normal no main
agora quando vou implementar usando um bean nao funcionar…

Sera que só funcionar com servlets??

Vc vai ter que implementar…se vc reparar vai ver que esta minha classe extends da Httpservlet…

[quote=“tiagofranklin”]Galera estou precisando de uma força…
Consigo gerar o relatorio para desktop… ele gerar normal no main
agora quando vou implementar usando um bean nao funcionar…

Sera que só funcionar com servlets??[/quote]

è que biblioteca e essa dori???

estou usando net.sf.jasperreports.*
sera que tem algum problema nisso tambem??
tentarei implementar esse seu servlets…

Galera implementei esse servlet ai
mais com as bibliotecas net.sf.jasperreports.*
so que ele tras a pagina em branco e nao gera o relatorio…

ja instalei o jasper***.jar no classpath…
onde acho essa tal de biblioteca dori???

creio que o meu problema é ela…
preciso instalar ela, como instalar??

Amigo…na verdade mudou o caminho dos imports do jasper…este programa foi feito com a versão antiga…faça o seguinte: remova os imports do dori…e aí a aplicação no eclipse vai pedir para vc importar os pacotes certos…antes jogue o jasperreports-0.6.4.jar dentro do classpath ou no (WEB-INF/lib).

os importes seguem esta ordem !
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRExporter;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;

[quote=“tiagofranklin”]Galera implementei esse servlet ai
mais com as bibliotecas net.sf.jasperreports.*
so que ele tras a pagina em branco e nao gera o relatorio…

ja instalei o jasper***.jar no classpath…
onde acho essa tal de biblioteca dori???

creio que o meu problema é ela…
preciso instalar ela, como instalar??[/quote]