Erro com ireport

olá, montei um relatório com o plugin do ireport para netbeans.

foi gerado um arquivo.jrxml.

com este arquivo, consigo visualizar pela opção preview (com os campos do banco), e compila sem erros gerando o .jasper.

na hora de chamar o .jasper, ele abre o relatório (o pdf), mas sem os campos da pesquisa.

segue o método que chama:


//abro minha conexão
Connection conn = ConexaoSingleton.getConexao();

Statement  st = conn.createStatement();
        
String sql = "select * from usuario";       
ResultSet rs = st.executeQuery(sql);

JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);

JasperPrint jasperPrint = JasperFillManager.fillReport("src/relatorios/report1.jasper", new HashMap(),jrRS);

JasperViewer.viewReport(jasperPrint); 

ConexaoSingleton.fechaConexao();

será que alguém dá uma luz?

se tiverem outro código que chama este .jasper, ajudaria também

.

Se ta gerando um PDF em branco deve ser alguma inconsistencia no relatório que você criou. Você criou no IReport mesmo? Tenta colocar algum label pra ver se aparece.

o relatórios está ok, com o irreport e pelo netbeans com preview ele chama o relatório bonitinho.

quando chamo pela classe java co aquele método acima, o relatório vem com os campos estáticos + data + números de página,
porém sem os dados do select.

me levando a conclusão que o problema está naquele meu código java acima.

se alguém tiver um código alternativo, ou poder apontar onde está o erro naquele agradeço

AJUDA EU

To com um problema na hora de gerar o pdf. A servlet vai nuba boa, mas o que vem na tela pra mim é isso aqui oh.

%PDF-1.4 %âãÏÓ 4 0 obj <>stream x?¥?Ín!?ïûãMRq??v?þi¢ë©ö@]jÖ¬k?Ö¶?Ü·è®=h??m2!Ãa?pe?²H&#65533;¯[ÓB¶?.R¢?½DÝ^¶?®Î?pXnÎ?P&L##?ü# j?ùq?_EÝt>N'óN§Ù?Ãê??ê1p¤??ŧòß?á}zwC&#65533;?:÷0áÁú°Ê?ß@¨uhfK·?©{õn窽ÝaG¹º¸íî&ÏÎ;?í=mh?âD@#çË¢"Z #"O?zÂ?kç7¶ú$ 3¸ä}Î??(?>â¸k¥i¥1ô7ÇÃlJ´ÞB¨,dþm]?å?(??¼WÎÕ·¤rÈ-?ÜAi?NP?ªÙ×G±ÜÂ%KÕL?Ã5'½á£?p&®É?ê$?Xtõ¢aZë¾2H©.µ??Jñ?$Í?>å7íì?Q endstream endobj 1 0 obj<<<>>>/MediaBox[0 0 595 842]>> endobj 7 0 obj <>stream x?¥?½NÃ0?w?Å?é@ðO?±¨Th?ÚT?!jL)JmpB?Gæ-HÐe8EJ¬Äw?/?Ï®ØyÁðîêïY"¡Ø³Ó©&#65533;Ñ?Y4*?ÙÅñ?ýq?R?ñ4NÿyÈ>?-?Æó"?÷i8lÿIuÿÐ=+ º5 \ëÝÎÃÌaë<%µ@åïÎA¥C¿kV¶ee?o&#65533;¤?ÂR?ÆP_»??I<??~p×*¢??Jl_ Ñ?XGz=­õ?:ST-I??Ü[]Óòk?í²ÈWQ8N(?ü¾là²Õ'Ñ;Z?µma_?m¬kËvw°Ä]??ä]YÎl?å+¥mzM!¨eïï¨?PÄݸ{7¹¥B«kª4ý:Fü6¦1YF3?ìh>f¥FóAÖ7j??= endstream endobj 6 0 obj<<<>>>/MediaBox[0 0 595 842]>> endobj 9 0 obj <>stream x?¥ÔKKÃ@að{>Åë¡u³¯l?­´iú8??Æ4Òld?Vü¾ú=Ü?2??a$³¿dÿ;?p?L·I “nç£Ó¶ur=O!?WÏÉàjû?Ì.ðT_)NØ?ý-çBñ};?É`:[/6ça?õðϤñ?háfª¶«|Såáè’?éáîC?&E]ùÈ?¼kÃS¶wãGOíé£Dà8??,3µ<ð??-l?cã@JfB=Èeè?¡Ð?Ët{Di°??vÿ?2d?¦?Ùr²ãö)-Üæ>öèªiZfú4³ÉØÂ_¶è»¼«NÈ\48oBÛaÜÃ7#¡igp?UÍ??D¬SÂr”?

alguem sabe como resolver esse problema?

código que estou usando:

import java.io.;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.
;
import javax.servlet.http.*;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperRunManager;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;

/**
*

  • @author Administrador
    */
    public class Relatorio extends HttpServlet {

private Connection getConnection(){
Connection connection=null;
try {
//cria a conexão com o banco de dados
Class.forName(“com.mysql.jdbc.Driver”);
String db = “jdbc:mysql://localhost:3306/relatorios?user=edson&password=integrator”;
connection = DriverManager.getConnection(db);

} catch (SQLException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}

return connection;

}

/**

  • Processes requests for both HTTP GET and POST methods.
  • @param request servlet request
  • @param response servlet response
    */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // response.setContentType(“text/pdf;charset=ISO-8859-1”);
    // PrintWriter out = response.getWriter();

ServletOutputStream servletOutputStream = response.getOutputStream();

String caminho = “/WEB-INF/relatorios/”;
String relatorio = caminho+“Relatorios_MestreDetalhe.jasper”;
InputStream reportStream = getServletConfig().
getServletContext().
getResourceAsStream(relatorio);

ServletContext context = getServletContext();

try {

Connection connection = getConnection();
HashMap<String, String> map = new HashMap<String, String>();
//o Nome do parâmetro e o valor é passado ao HashMap
map.put(“SUBREPORT_DIR”, context.getRealPath(caminho)+File.separator);

JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream, map,connection);

response.setContentType(“application/pdf”);
servletOutputStream.flush();
servletOutputStream.close();
if(connection!=null)connection.close();
} catch (SQLException ex) {
Logger.getLogger(“global”).log(Level.SEVERE, null, ex);
}
catch (JRException e) {
// display stack trace in the browser
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
e.printStackTrace(printWriter);
response.setContentType(“text/plain”);
response.getOutputStream().print(stringWriter.toString());
}

}

//
/**

  • Handles the HTTP GET method.
  • @param request servlet request
  • @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    processRequest(request, response);
    }

/**

  • Handles the HTTP POST method.
  • @param request servlet request
  • @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    processRequest(request, response);
    }

/**

  • Returns a short description of the servlet.
    */
    public String getServletInfo() {
    return “Short description”;
    }
    //
    }

os arquivos estão nas pastas corretas o problema é somente na visualização! Obrigado desde já a atenção

Caro rvcabral,

Seu sql pode estar gerando inconsistencia de informação com o relatório.
vou explicar.

digamos que no seu relatorio vc quer que apareca o Codigo do produto.
e no seu sql vc faz,

beleza?
certo, mas em seu banco esta cd_codigo.

Blz?! Agora o relatório esta esperando seu resultSet com a informação de Codigo,

Reparou que ele não vai receber esse Codigo?? Porque você esta enviando cd_codigo;
Correção para esse tipo de problema.

Att. Jonas

ai cara estou com o seginte problema quando eu chamo o meu relatorio no sistema e paso os parametros ele me da o seginte erro

Ocorreu o seguinte erro ao gerar o relatório: Erro ao gerar relatório. Verifique a saída do programa:

Exception in thread "main"
java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at net.sf.jasperreports.engine.design.JRDefaultCompiler.getCompiler(JRDefaultCompiler.java:201)
at net.sf.jasperreports.engine.design.JRDefaultCompiler.loadEvaluator(JRDefaultCompiler.java:216)
at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:410)
at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:384)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:77)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:59)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:57)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfFile(JasperRunManager.java:122)
at br.com.infoger.Relatorio.Utilitario.Gerador.GeradorRelatorio.gerar(GeradorRelatorio.java:43)
at br.com.infoger.Relatorio.Utilitario.Gerador.ProcessadorLinhaComando.(ProcessadorLinhaComando.java:53)
at br.com.infoger.Relatorio.Utilitario.Gerador.ProcessadorLinhaComando.main(ProcessadorLinhaComando.java:27)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.control.CompilationFailedException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
… 19 more

Comando enviado para gerar o relatório:

java -jar …\relatorio.jar -o pdf “C:\Users\infoger
\AppData\Local\Temp\relatorio2811522.pdf” -b “127.0.0.1” “infocompos” “5432” “postgres” “infoger”
"“postgresql”" -m “…\relatorios\Clientes.jasper” -f “SUBREPORT_DIR” “…\relatorios\” -f
"nm_usuario" “USUARIO” “-f” “data_inicio” “01/07/2010” “-f” “data_final” “22/07/2010” “-f” “cidade” “1"
”-f" “cliente” “1” “-f” “vendedor” “1” “-f” “grupo” “1” “-f” “tipo_pessoa” “F” “-f” “ativos” “S” “-f” “nm_filial” “FILIAL” “1000000500”

ve ai se vc pode me ajudar

oque significa isso?

java -jar ..\..\relatorio.jar -o pdf "C:\Users\infoger
\AppData\Local\Temp\relatorio2811522.pdf" -b "127.0.0.1" "infocompos" "5432" "postgres" "infoger"
""postgresql"" -m "..\..\relatorios\Clientes.jasper" -f "SUBREPORT_DIR" "..\..\relatorios\\" -f
"nm_usuario" "USUARIO" "-f" "data_inicio" "01/07/2010" "-f" "data_final" "22/07/2010" "-f" "cidade" "1"
"-f" "cliente" "1" "-f" "vendedor" "1" "-f" "grupo" "1" "-f" "tipo_pessoa" "F" "-f" "ativos" "S" "-f" "nm_filial" "FILIAL" "1000000500" 

são os parametros que eu passo para o relatorio
e o local que ele esta

deu erro de compilacao…

no seu groovy pelo que percebi