Hola soy nuevo en el foro asi q tratate de ser breve y conciso stoy trabajando en un proyecto en struts y Oracla adicionalmente me pidieron uns reportes en excel, yo he podido generar los reportes y estan guardados en el servidor bueno realmente locales porq en este momento el sistema todavia no esta subido al OAS de Oracle sino que corre desde mi maquina pero se guarda en la ruta de contexto, pero el problema es q al tratar de ejecutar el proyecto en otra maquina de la intranet de la empresa, el reporte se guarda y actualiza en mi maquina, tambien tiene una sentencia para q lo abra al final del proceso para que el usuario lo pueda guardar donde desee, pero tambien lo abre en mi maquina no en la del cliente que necesita el reporte
Acá les dejo el servlet q stoy usando para el proceso.
Agradezco de antemano sus respuestas
public class xlsComprasServlet extends HttpServlet
{
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException
{
System.out.println("ENTRO AL ACTION DEL REPORT COMPRAS");
HttpSession session = request.getSession();
Usuario usuarioAct = (Usuario)session.getAttribute("usuarioSession");
//ArrayList modeloFinanciero=(ArrayList)session.getAttribute(" ModeloFinanciero");
if(usuarioAct != null){
File reportSource = null;
File dest = null;
String reportDest = null;
ServletContext context = this.getServletConfig().getServletContext();
try{
String anno = request.getParameter("ANNO");//Parametro que viene de la interfaz Web
Double annoDouble=new Double(anno);
//String titulo = "";
//Fin cargar cosecha
Map parameters = new HashMap();
//reportSource = "C:/Reportes/ComprasPorLote.jasper";
reportSource=new File(context.getRealPath("/Reportes/ComprasPorLote.jasper"));
String ruta=""+reportSource;
parameters.put("titulo", "Prueba");
parameters.put("ANNO",annoDouble);
dest=new File(context.getRealPath("/Reportes/archivo.xls"));
reportDest = ""+dest;
//reportDest = "C:/Reportes/archivo.xls";
Connection conexion = null;
conexion = DriverManager.getConnection(MetodsGensSIIF.URLCnst ,"bsfuser","bsfuser");
JasperPrint jasperPrint = JasperFillManager.fillReport(ruta, parameters, conexion);
//System.out.print("No Paso");
if (jasperPrint.getPages().isEmpty()) {
System.out.print("No tiene resultados");
}else{
JExcelApiExporter xlsExporter = new JExcelApiExporter();
xlsExporter.setParameter(JRExporterParameter.JASPE R_PRINT, jasperPrint);
xlsExporter.setParameter(JRXlsExporterParameter.IS _ONE_PAGE_PER_SHEET, Boolean.TRUE);
xlsExporter.setParameter(JRExporterParameter.OUTPU T_FILE_NAME, reportDest);
xlsExporter.exportReport();
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + reportDest);
File file=new File(reportDest);
System.out.println(file.getPath());
//this.dispose();
}
}catch (JRException ex){
System.out.println(ex);
}catch (SQLException ex) {
System.out.println(ex);
}
}
}
}//Fin de la clase