Jasperreports

Olá comunidade java.
Estou com um problema com o jasperreports,
quando tento gerar um relatório a linha

InputStream stream = getServletContext().getResourceAsStream( “/report03.jasper” );
JasperReport relatorio = JasperManager.loadReport(stream);

do código abaixo não resolve o nome do arquivo, já chequei o contexto
do servidor e está tudo normal, alguém pode me ajudar???

/*

  • Created on 16/06/2004
  • To change the template for this generated file go to
  • Window - Preferences - Java - Code Generation - Code and Comments
    */

package sefaz.mt.pat.processo.relatorios;

import javax.servlet.;
import javax.servlet.http.
;
import java.sql.*;
import java.io.InputStream;
import java.util.HashMap;

import dori.jasper.engine.*;

/**

  • @author edbarros
  • To change the template for this generated type comment go to
  • Window - Preferences - Java - Code Generation - Code and Comments
    */

public class TesteRelatorio extends HttpServlet {

//Driver de banco de dados
private static final String driver   = "oracle.jdbc.driver.OracleDriver";

//Servidor de banco de dados
private static final String url      = "jdbc:oracle:thin:@ati06:1521:maceio";

//Nome do banco de dados
private static final String dataBase = "MACEIO";

//Nome de usuário
private static final String usuario  = "agd";

//Senha do usuário
private static final String senha    = "agd";

//URL BASE ?????
private static final String urlBase  = "/pat";

//Pasta de arquivos web do tomcat
private static final String pageRoot = " ";

//Nome do arquivo  ser carregado
private static final String fileName = "/report03.jasper";


//Método doGet
public void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException{
	try {
			// Carrega o relatório compilado
			InputStream stream = getServletContext().getResourceAsStream( "/report03.jasper" );
			JasperReport relatorio = JasperManager.loadReport(stream);

			// Conexão com o banco de dados	
			Class.forName( driver );    
			Connection con = DriverManager.getConnection(url, usuario, senha);
		
			//Definindo um nome para o arquivo
			String nomeArq = request.getSession().getId() + ".pdf";
			
			//Executa o relatório e salva no arquivo temporario
			JasperPrint impressao = JasperManager.fillReport(relatorio, new HashMap(), con);
			JasperManager.printReportToPdfFile(impressao, pageRoot + urlBase + nomeArq);
			
			//Envia um redirect para o arquivo
			response.sendRedirect( pageRoot + urlBase + nomeArq );
		}catch ( Exception e ){
			throw new ServletException( e );
		}
	
}

}

//Você pode setar essa variável, se desejar compilar o relatório (o que é até aconselhável), e não apenas carregar o arquivo já compilado, coloca esse códico antes de carregar o arquivo que será compilado…

//Seta variável

String libsPath = (String) getServletContext().getAttribute(
    "org.apache.catalina.jsp_classpath");

System.setProperty("jasper.reports.compile.class.path", libsPath);

[color=“darkblue”][/color]
private void doGet(HttpServletRequest requisicao,
HttpServletResponse response) throws ServletException,
JRException, ClassNotFoundException, SQLException, IOException {

//Seta variável

//carrega o arquivo
InputStream stream = getServletContext().getResourceAsStream("Templates/Produtos.xml");

//Compila o relatório
JasperReport relatorio = JasperCompileManager.compileReport(stream);

//Estabelece conexão com JDBC
Class.forName(driver);
Connection con = DriverManager.getConnection(url, login, senha);

String nomeArq = requisicao.getSession().getId() + ".pdf";

JasperPrint impressao = JasperFillManager.fillReport(relatorio, new HashMap(),
    con);
JasperManager.printReportToPdfFile(impressao, pageRoot + urlBase + nomeArq);


response.sendRedirect(urlBase + nomeArq);

}

Mas se você deseja apenas carregar o relatório já compilado, para que você possa utilizar o arquivo report03.jasper, você deve primeiramente executar o relatório e salvar com esse nome…

:razz: Espero que isso sirva… :razz:
Guiga