Feeds de los foros

En la página principal de los foros encontrarás los enlaces al logo feed feed general y al de cada uno de los foros.

Subscribete para mantenerte informado de los cambios y responde a las dudas siempre que te sea posible

Buscar en el foro

Foro J2EE

feed Foro J2EE Foro: J2EE

Nuevo Tema Nuevo Tema

Mandar ficheros xml y pdf sin necesidad de guardarles 12/05/2008 11:00
anonymous

Hola:

Genero un fichero xml y quiero mandarle al explorador sin tener que guardarlo en el servidor. Quiero, que al mandarlo al explorador me de la opción de elegir si quiero descargarlo o abrirlo directamente, y para hacerlo así sólo lo he conseguido guardando en el servidor el fichero generado y luego mandarlo.

Tendría que hacer lo mismo para un pdf.

¿Alguna idea de qué debería de usar para hacerlo así?

 

Muchas gracias.

 

Jose

 

#unapprove_message#
RE: Mandar ficheros xml y pdf sin necesidad de guardarles 14/05/2008 01:22
ealonso04

Hola, en qué ambiente estás trabajando???

Yo he conseguido lo que dices, estoy usando Flex y uso un servlet de Java que me genera un PDF y me da la opción de abrirlo o guardarlo, pero lo que va dentro del PDF es un reporte generado en iReport. Desde el Flex le mando los parámetros que necesita el reporte.

Así que dime cómo estás trabajando para saber si te puedo ayudar. Saludos!!!

#unapprove_message#
RE: Mandar ficheros xml y pdf sin necesidad de guardarles 14/05/2008 01:23
ealonso04

Hola, en qué ambiente estás trabajando???

Yo he conseguido lo que dices, estoy usando Flex y uso un servlet de Java que me genera un PDF y me da la opción de abrirlo o guardarlo, pero lo que va dentro del PDF es un reporte generado en iReport. Desde el Flex le mando los parámetros que necesita el reporte.

Así que dime cómo estás trabajando para saber si te puedo ayudar. Saludos!!!

#unapprove_message#
RE: Mandar ficheros xml y pdf sin necesidad de guardarles 14/05/2008 16:14
anonymous

Hola:

Utilizo struts y jsps normales.

 

Muchas gracias.

 

Saludos.

#unapprove_message#
RE: Mandar ficheros xml y pdf sin necesidad de guardarles 14/05/2008 20:04
ealonso04

Hola aquí te mando el servlet que uso:

public class ReportesServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
private String CONTENT_TYPE="text/html";
public ReportesServlet() {
super();
}

/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
createReport(request, response);
}

/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}


private Connection getConnection() throws Exception{

Connection con;

Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/data_base";
System.out.println(url);
con = DriverManager.getConnection(url,"user","passw ord");
return con;
}


private void createReport(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
OutputStream out = response.getOutputStream();

request.setCharacterEncoding("UTF8");
String reporteNombre = "reporte.jasper";

String tipoReporte=request.getParameter("TIPOREPORTE"); Integer pkConsulta=new Integer(Integer.parseInt((String)request.getParameter(" PKCONSULTA")) );
String medico=(String)request.getParameter("medico");
String paciente=(String)request.getParameter("paciente");
Integer pkReceta=new Integer(request.getParameter("pkReceta"));


System.out.println(tipoReporte+pkConsulta);
System.out.println(medico);
ServletContext context = null;
Connection con = null;

Map parameters = new HashMap();
context = this.getServletConfig().getServletContext();

try {
con = getConnection();

parameters.put("PKCONSULTA",pkConsulta);
parameters.put("medico",medico);
parameters.put("paciente",paciente);
parameters.put("pkReceta", pkReceta);
String reporteJasper = "/src-flex/flex/reportes/"+ reporteNombre;
System.out.println(request.getSession().getServletContext(). getRealPath(reporteJasper));
reporteJasper = request.getSession().getServletContext().getRealPath(reporte Jasper);
JasperReport report = (JasperReport) JRLoader.loadObject(reporteJasper);
parameters.put("REPORT_CONNECTION",con);

JasperPrint jasperPrint = JasperFillManager.fillReport(report, parameters, con);

if (tipoReporte.equals("PDF")) {
response.setContentType("application/pdf");
JRPdfExporter exporter = new JRPdfExporter();
response.setLocale(new java.util.Locale("es", "MX"));
response.setHeader("Content-Disposition", "attachment;filename=\""+ "recetas" +".pdf\"");

exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING , "ISO-8859-1");
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out); //response.getOutputStream()
exporter.exportReport();
} else if (tipoReporte.equals("XLS")) {
response.setContentType("application/vnd.ms-excel" );
response.setLocale(new java.util.Locale("es", "MX"));
response.setHeader("Content-Disposition", "attachment;filename=\""+ "recetas" +".xls\"");
JRXlsExporter exporter = new JRXlsExporter();
exporter.setParameter(JRExporterParameter.CHARACTER_ENCODING , "ISO-8859-1");
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out); //response.getOutputStream()
exporter.exportReport();
}
} catch (JRException ex2) {
response.setContentType("text/html");
ex2.printStackTrace();
} catch (Exception ex1) {
ex1.printStackTrace();
response.setContentType("text/html");
}finally {
response.flushBuffer();
try {
if (con != null)
con.close();
} catch (Exception ex) {
log("Error Description", ex);
}
}

}//fin create report

}
#unapprove_message#
RE: RE: Mandar ficheros xml y pdf sin necesidad de guardarle ... 14/05/2008 20:12
ealonso04

Independientemente del método que uses para el servlet (post o get), lo manda al método createReport. Dentro de éste método saca los datos que trae el request y los mete en un Hashmap donde almaceno los parámetros que ocupará el reporte.

Pero antes viene un método donde obtengo la conexión de la BD que ocupa el reporte y esta misma conexión la meto como parámetro en el Hashmap. Lo siguiente es validar si el reporte será impreso como PDF o XLS, estas son las opciones que manejo, creo que también te servirá por si lo quieres en XML, pero eso lo tendrás que investigar, si lo supiera te lo diría : ).

Espero que no te sea enredoso el código y que te sea de utilidad.

Saludos!!!

#unapprove_message#
RE: Mandar ficheros xml y pdf sin necesidad de guardarles 16/05/2008 09:11
anonymous

Ah, muchas gracias ealonso04. Te había contestado para darte las gracias pero me temo que se me olvido el último click.

He estado echándolo un vistazo y creo que si que me vale. A ve si saco un buen rato para irlo implementado en mi proyecto y te cuento.

 

Muchas gracias de nuevo.

 

Saludos.

#unapprove_message#
RE: Mandar ficheros xml y pdf sin necesidad de guardarles 17/05/2008 01:21
ealonso04

Hola, disculpa me he olvidado de mandarte los imports del servlet, aquí están:

import javax.servlet.*;
import javax.servlet.http.*;

import com.mysql.jdbc.Statement;

import java.io.*;
import java.util.*;
import java.sql.DriverManager;
import java.sql.Connection;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.export.JRPdfExporter;
import net.sf.jasperreports.engine.export.JRXlsExporter;
import net.sf.jasperreports.engine.util.JRLoader;

Y por último necesitas este JAR: jasperreports-1.2.7.jar

Ojalá lo consigas en la web, si tienes problemas para encontrarlo, dímelo y con mucho gusto te lo mandaré a tu correo.

Saludos!!!

#unapprove_message#
RE: RE: Mandar ficheros xml y pdf sin necesidad de guardarle ... 21/05/2008 20:19
anonymous

por cierto, estoy viendo que les hace falta comentar que deben incluir la libreria poi-3.0.1-FINAL-20070705.jar (en jasper2.0.2) para que se genere el archivo de manera correcta, ya que de lo contrario unicamente te va a generar un archivo de 0kb. lo cual es incorrecto.

Saludos. 

 

#unapprove_message#
#thread_expired#.
Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano