Encontrar un Archivo desde un Servlet en una Aplicación Web

Partiendo del proyecto que demuestra como crear una aplicación con soporte para reportes tenemos la siguiente estructura:

Web Project's Estructure

Web Project's Estructure

Al desplegar la aplicación al servidor los archivos se distribuyen de la siguiente manera:

Project's Deployment

Project's Deployment

El código Java que llama al archivo jrxml es el siguiente:

protected void service(HttpServletRequest request,
 HttpServletResponse response) throws ServletException, IOException {

 try {
 ServletContext sc = getServletConfig().getServletContext();
 String jrxmlPath = "/WEB-INF/classes/reports/PrimerReport.jrxml";
 String jasperPath = "/WEB-INF/classes/reports/PrimerReport.jasper";

 InputStream is = sc.getResourceAsStream(jasperPath);

 if (is == null) {
 String rp = sc.getRealPath(jrxmlPath);
 JasperCompileManager.compileReportToFile(rp);
 is = sc.getResourceAsStream(jasperPath);
 }

 ServletOutputStream sos = response.getOutputStream();
 JasperRunManager.runReportToPdfStream(is, sos, new HashMap(),
 new JREmptyDataSource());

 response.setContentType("application/pdf");
 sos.flush();
 sos.close();

 } catch (JRException e) {
 StringWriter sw = new StringWriter();
 PrintWriter pw = new PrintWriter(sw);
 e.printStackTrace(pw);
 response.setContentType("text/plain");
 response.getOutputStream().print(sw.toString());
 }
 }

Etiquetas:

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: