Exportar/abrir excel

Buenas, a ver si alguien me puede echar una mano, que tengo unos errores de concepto un tanto extraños....

Tengo 1 aplicacion web con 2 partes, 1cliente war, y 1webServices. Los dos estan desplegados en una maquina de produccion.

En el cliente tengo un boton que genera excel, al pincharlo, se va al webService que mezcla un xml con un xsl, genera un excel que lo guarda en /var/tmp/. mientras que el war como el webService están en otra ruta que no tiene nada que ver con esa

Ahora bien, quiero que el excel generado el usuario lo vea del tirón en el programa Excel y no se como hacerlo, ¿me tendría que bajar a mi local via FTP el excel generado para poder abrirlo?(creo que no haría falta....)

Gracias de antemano

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Array de bytes

Haber si entendí bien, tienes un página web en la que un usuario da clic a un boton . Cuando se da clic, la página (cliente war) llama a un web service, el cual genera un excel el cuál se guarda en un directorio del servidor. Si lo descrito anteriormente es correcto, te sugiero que modifiques el webservice para que te regrese un array de bytes que representen el contenido del excel generado. Este array de bytes los recibes en el cliente y, si es página web, puedes hacer que el contenido sea descargado cómo una aplicación. La forma de modificar el WS depende del tipo, es decir si es SOAP o es un servicio REST, así como las librerías utilizadas, Axis 2, CXF, etc.

Yo entendí algo diferente XD

A ver si tienes acceso a la ruta desde el cliente es decir que el webservices y la aplicación que lo consume se encuentran en el mismo servidor, podrías ir sin problemas a leerlo, pero...

si el ws crea el excel en otro servidor entonces si tendrías que utilizar un FTP , ahora lo que te comenta cuauhpilli es cierto podrías recibir del WS un valor de tipo array de bytes y solo mandarlo a la cabecera de la aplicación que responde y listo.

de igual modo quiero creer que el archivo solo lo vas a utilizar una ves y que no te interesa almacenarlo ya que lo guardas en /tmp, no se cual sea el motivo de se cree el archivo y después lo tengas que descargar pero podrías ahorrarte ese paso.

si comentas bien cuales son tus planes igual se te podría orientar mejor.

saludos

Imagen de alrio

Ante todo, gracias por la

Ante todo, gracias por la ayuda y las respuestas, voy a ver si me explico un poco mejor,
Actualmente tengo y me funciona pero quiero mejorarlo. el War y el webService están en la misma maquina sitio desplegado.
El problema que tengo es que cuando el usuario pulsa el boton ve lo siguiente:

1) pulsa boton
2)aparece una ventana intermedia (mostrar.jsp, que se abre con un window.open) que se abre y se cierra sola
3)aparece el tipico "pop up" de abriendo Excel, ¿Que deberia hacer firefox con este archivo? Abrir con, Guardar archivo.

Me gustaría quitar la ventana intermedia y no se como.

Ahora un poco de codigo para ver si queda mas claro:
------------------------------------------------------------------------------

1) El usuario pulsa un boton (dentro de una jsp) que llama a la siguiente funcion ajax (la he resumido):

function descarga(parametro){
$.ajax({
url: '../miServlet',
type: 'POST',
dataType: "html",
async: true,
data: parametros,

success: function(urlFichero) {

window.open("mostrar.jsp?url="+urlFichero,"" ,"width= 300 ,height= 400 ");
}
}); ////fin llamada ajax
}

2) mostrar.jsp contiene:

<%@ page import="java.io.FileInputStream" %>
<%try {
String URL=request.getParameter("url");
String nombre_fichero=request.getParameter("nombreFichero");
FileInputStream archivo = new FileInputStream(URL);
int longitud = archivo.available();
byte[] datos = new byte[longitud];
archivo.read(datos);
archivo.close();

response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename="+nombre_fichero);

ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(datos);
ouputStream.flush();
ouputStream.close();

} catch(Exception e){}
%>

3)miServlet (se llama desde la funcion ajax antes que a la jsp mostrar.jsp):

try {
Conector conector = new Conector();

String nombreFichero = conector.generaXML(parametro); -->Funcion que llama al webService
String carpetaTMP = System.getProperty("java.io.tmpdir");
String rutaFichero = carpetaTMP + nombreFichero;

response.setContentType("text/xml");
PrintWriter out = response.getWriter();
out.write(rutaFichero);

} catch (final IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Espero que haya quedado mas claro todo!

Gracias por la ayuda de nuevo

mmm veamos

puedes probar sustituyendo
window.open("mostrar.jsp?url="+urlFichero,"" ,"width= 300 ,height= 400 ");
por
window.open("mostrar.jsp?url="+urlFichero);

o por
location.href =("mostrar.jsp?url="+urlFichero;

o podrías poner el código donde esta el botón que va a la jsp si eso anterior no jala
1) El usuario pulsa un boton (dentro de una jsp) que llama a la siguiente funcion ajax (la he resumido):

Imagen de alrio

Con location.href me funciona

Con location.href me funciona tanto en explorer como en firefox

Con window.open, quitando los parametros de tamaño, en explorer me salía un ventanon intermedio.

1000 Gracias a los dos por la ayuda prestada :-)

me alegra

Me alegra que solucionaras el problema.

Continua visitando esta comunidad Mexicana que seguro encuentras ayuda.