Erro ao gerar PDF (JasperReport)  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
Augusto Cesar
Thread.start()
[Avatar]

Membro desde: 09/12/2009 17:48:38
Mensagens: 31
Offline

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!?ïûãMR`q??v?þi¢ë©ö@]jÖ¬k?Ö¶?Ü·è®=h??m2! Ã?p?²H�¯[ÓB¶?.R¢?½DÝ^¶?®Î?pXnÎ?P&L##?ü# j?ùq?_EÝt>N'óN§Ù?Ãê??ê1p¤??ŧòß?á}zwC�?:÷0áÁú°Ê?ß@¨u hfK·?©{õn窽ÝG¹º¸íî&ÏÎ;?í=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õ¢Zë¾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"¡Ø³Ó©�Ñ?Y4*?ÙÅñ?ýq?R?ñ4NÿyÈ>?-?Æó"?÷i8lÿIuÿÐ=+ º5 \ëÝÎÃÌë<%µ@åïÎA¥C¿kV¶ee?o�¤?ÂR`?ÆP_»??I<??~p×\*¢??Jl_ Ñ ?XGz=­õ?:ST-I??Ü[]Óòk?`í²ÈWQ8N(?ü¾lಠÕ'Ñ;Z?µm`a_?m¬kËvw°Ä]??ä]YÎl?å+¥mzM\!¨ï*ï¨?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Ã@ð{>Åë¡u³¯l?­´iú8??`Æ4Òld?Vü¾ú=Ü?`2??$³¿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=Èè?¡Ð?Ë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 <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 {
// 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());
}


}

// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> 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 <code>POST</code> 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";
}
// </editor-fold>
}

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

Choramos ao nascer, pois acabamos de chegar a esse imenso cenário de dementes. ( Shakespeare )

Os dados falam sobre a tortura do problema.
(Prof. Fonseca)
renatormendes
What is classpath?
[Avatar]

Membro desde: 26/05/2010 12:41:51
Mensagens: 8
Offline

Estou gerando um erro tbm quando executo meu programa para gerar um relatório com JasperReport. Segue abaixo o código do erro:

--------------------Configuration: RelatorioBibliotecaPessoal - JDK version 1.6.0_17 <Default> - <Default>--------------------
Exception in thread "main" java.io.FileNotFoundException: \\teste.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:117)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:237)
at RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:2
at RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:34)

NESTED BY :
net.sf.jasperreports.engine.JRException: \\teste.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:117)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:237)
at RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:2
at RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:34)
Caused by: java.io.FileNotFoundException: \\teste.jasper
... 4 more

Se, eu retirar as barras do caminho para o arquivo teste.jasper, ele gera outro erro:

--------------------Configuration: RelatorioBibliotecaPessoal - JDK version 1.6.0_17 <Default> - <Default>--------------------
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at net.sf.jasperreports.engine.fill.JRBaseFiller.<clinit>(JRBaseFiller.java:123)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:151)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:353)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:274)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:242)
at RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:2
at RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:34)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:18
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:24
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
... 7 more

gostaria que alguém me desse uma luz no que esta errado aqui... segue abaixo o meu código:

import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;
import java.sql.*;
import java.util.*;

public class RelatorioBibliotecaPessoal{

private static Connection getConnection() throws ClassNotFoundException, SQLException {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost/test";
String user = "root";
String password = "1234";

Class.forName(driver);
Connection con = DriverManager.getConnection(url,user,password);
return con;
}

public void geraRelatorio() throws JRException, Exception {
Connection con = getConnection();
Statement stm = con.createStatement();
String query = "select * from user";
ResultSet rs = stm.executeQuery(query);

JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
Map parameters = new HashMap();

JasperFillManager.fillReportToFile("teste.jasper",parameters,jrRS);
JasperExportManager.exportReportToPdfFile("teste.jrprint");
JasperViewer.viewReport("teste.pdf",false);
}

public static void main(String[] args) throws JRException, Exception{
new RelatorioBibliotecaPessoal().geraRelatorio();
}
}

Estou usando:

JCreator 4.5 PRO
JasperReport 0.6.1
IReport 0.4.0
MySQL 4.1
Eclipse 3.4
Windows XP
Se alguém puder me ajudar eu agradeço a atenção dispensada a este.

This message was edited 1 time. Last update was at 30/05/2010 23:41:24


Optimus Black Prime
[Email] [MSN]
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team