Publicar Aplicação JSP+Tomcat+Servlet+Ireport

1 resposta
Wesley_Martins

Boa Pessoal,
Estou com uma duvida: Como faço para publicar uma aplicação WEB que utiliza o iReport para gerar relatorios?
A Aplicação ja esta publicada e esta funcionando normal, apenas não está acessando os relatorios que são para abrir em PDF pelo Browser. No PC onde estou desenvolvendo abre normal, mas quando publico, aparece essa msg: “format error: not a PDF or corrupted”. e pede para salvar o relatorio em pdf mas com 0KB. :frowning:
Segue o Servlet onde esta sendo chamado o relatorio, observem como passei o caminho do relatorio.

public class ServletRelatorios extends HttpServlet {
   
    /** 
    * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException{
        
   
    Connection conn = null;
    String caminho = "/relatorios/"; // Esse caminho é uma PASTA onde coloquei os .jasper
    String relatorio = caminho+"Cidades.jasper";
       
    ServletOutputStream servletOutPurStream = response.getOutputStream();
    InputStream reportStream = getServletConfig().getServletContext().getResourceAsStream(relatorio);
     
    try{
    
        Class.forName("com.mysql.jdbc.Driver");
        String db="jdbc:mysql://localhost/dbOrdemServico";
        conn = (Connection) DriverManager.getConnection(db,"root","");
        response.setContentType("application/pdf");
        JasperRunManager.runReportToPdfStream(reportStream, servletOutPurStream, new HashMap(),conn);
    }catch(ClassNotFoundException ex){
        
       Logger.getLogger(ServletRelatorios.class.getName()).log(Level.SEVERE,null,ex);
        
    
         
    }catch(SQLException ex){
       Logger.getLogger(ServletRelatorios.class.getName()).log(Level.SEVERE,null,ex);
        
    }catch(JRException e){
       Logger.getLogger(ServletRelatorios.class.getName()).log(Level.SEVERE,null,e);
        
    }finally{
    
        servletOutPurStream.flush();
        servletOutPurStream.close();
         try{
           
             if(conn !=null){
               conn.close();
             }
         
         }catch(SQLException ex){
         
            Logger.getLogger(ServletRelatorios.class.getName()).log(Level.SEVERE,null,ex);
        
         }
        
    
    }
   . 
   .
   .

Att

1 Resposta

Wesley_Martins

Alguém??

Criado 3 de janeiro de 2011
Ultima resposta 5 de jan. de 2011
Respostas 1
Participantes 1