Relatório iReport em branco

Boa tarde pessoal!

Estou fazendo um relatório com o iReport. Gera tudo certinho, só que os dados vindo do banco ficam em branco, só aparece os textos estaticos.

Isso acontece em todos os formatos que tento gerar.

Se eu abro o iReport e dou um Preview por lá, funciona Beleza!

Alguem poderia me ajudar?

Obs.: Achei que minha aplicação não estava conseguindo se conectar ao banco, mas fiz algumas querys e executaram beleza. Retornando os dados.

Se apenas os dados que você busca no bd não aparecem, só pode ser erro na classe de conexão ou na passagem do Connection (parâmetro para gerar o relatório)

agora eu nao sei, pq sou novo no java hien …

minha classe conexao

[code]public class Conexao {

public Connection getConnection()
{
    Connection con = null;   
    try
       {
        Class.forName("org.firebirdsql.jdbc.FBDriver");
        String driver = "jdbc:firebirdsql:127.0.0.1/3050:C:/Users/RKM/Desktop/TESTE.fdb";
        con = DriverManager.getConnection(driver, "SYSDBA", "masterkey");   
        System.out.println("Conexao Realizada com sucesso!");  
        java.sql.Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM cidade");
        
        while(rs.next()){
        
        String lastName = rs.getString("NOME_CIDADE");
        System.out.println(lastName + "\n"); // aqui traz os nomes das cidades que tem no meu banco de dados...... certinho!!!
        }
       } catch (Exception e) 
       {
           System.out.println("Não foi possível conectar ao banco: " + e.getMessage());
       }
      return con;
   
}

}[/code]

onde gero o relatorio

try { Connection con = new Conexao().getConnection(); HashMap parametros = new HashMap(); ServletContext sc = getServletContext(); String nomeArquivo = sc.getRealPath("/") + "report.pdf"; JasperPrint jp = JasperFillManager.fillReport(sc.getRealPath("jasper/report1.jasper"), parametros, con); JasperExportManager.exportReportToPdfFile(jp, nomeArquivo);

Cara voce não setou nenhuma fonte de dados para gerar o relatorio…

Veja o Exemplo:

[code]
try {
// carrega o relatório compilado
InputStream stream = getServletContext().getResourceAsStream(“caminho_do_arquivo_ponto_jasper”);
JasperReport relatorio = JasperManager.loadReport(stream);

// estabelece uma conexão JDBC (seria melhor usar DataSources J2EE)
Class.forName(driver);
Connection con = DriverManager.getConnection(url, login, passwd);

Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery(consultaSQL);

//ESSA PARTE VOCE NAO FEZ
// implementação da interface JRDataSource para DataSource ResultSet
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
Map parametros = new HashMap();

// AQUI VOCE PASSA O RELATORIO, OS PARAMETROS E O DATASOURCE COM OS DADOS.
JasperPrint impressao = JasperManager.fillReport(relatorio, parametros, jrRS);

JasperManager.printReportToPdfStream(impressao, response.getOutputStream());
con.close();
} catch (Exception e) {
throw new ServletException(e);
}[/code]

Me Avise se conseguir.
Abraços!

Cara eu nao consegui fazer do jeito que voce me mostrou…

Como ficou

[code] //carrega o relatório compilado
InputStream stream = getServletContext().getResourceAsStream(“C:\Users\RKM\Desktop\Relatorio WEB\report1.jasper”);
JasperReport relatorio = JasperManager.loadReport(stream);

// estabelece uma conexão JDBC (seria melhor usar DataSources J2EE)
Class.forName(“org.firebirdsql.jdbc.FBDriver”);
Connection con = DriverManager.getConnection(“jdbc:firebirdsql:127.0.0.1/3050:C:/Users/RKM/Desktop/TESTE.fdb”, “SYSDBA”, “masterkey”);

java.sql.Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery(“select ci.nome_cidade, count(cli.id_cliente) as nro_clientes from cliente cli inner join cidade ci on ci.id_cidade = cli.id_cidade group by ci.nome_cidade”);

// implementação da interface JRDataSource para DataSource ResultSet
JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
Map parametros = new HashMap();

// executa o relatório
JasperPrint impressao = JasperManager.fillReport(relatorio, parametros, jrRS);

JasperManager.printReportToPdfStream(impressao, response.getOutputStream());
con.close();[/code]

erro que me retorna

GRAVE: java.lang.NullPointerException at java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2265) at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2278) at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749) at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779) at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279) at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:191) at net.sf.jasperreports.engine.JasperManager.loadReport(JasperManager.java:998) at Teste.GerarHTML.processRequest(GerarHTML.java:71) at Teste.GerarHTML.doGet(GerarHTML.java:119) at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1523) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:325) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:226) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) at com.sun.grizzly.ContextTask.run(ContextTask.java:69) at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330) at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309) at java.lang.Thread.run(Thread.java:662)

Acho que esta falando que alguma coisa esta vindo null … nao sei o que…

Por favor me ajudem …

Não consegui fazer ainda… passei a noite toda tentando e pesquisando no google…

Algume me ajude pelo amor de deus!!! rsrsrs

Consegui inicialmente resolver o problema do null. Agora tenho outro problema q eu nao sei o que é…

Erro que me retorna

GRAVE: java.lang.IllegalStateException: PWC3990: getWriter() has already been called for this response at org.apache.catalina.connector.Response.getOutputStream(Response.java:676)

Me ajudem, desde já agradeço…