Foros del Web » Programación para mayores de 30 ;) » Java »

Actualizar .WAR Tomcat

Estas en el tema de Actualizar .WAR Tomcat en el foro de Java en Foros del Web. Buenas a todos, me encuentro con el siguiente problema al que no sé encontrar solución: Escenario: Tomcat 6.0 con un proyecto llamado ejemplo.war corriendo OK. ...
  #1 (permalink)  
Antiguo 26/05/2011, 04:30
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 9 meses
Puntos: 78
Actualizar .WAR Tomcat

Buenas a todos,
me encuentro con el siguiente problema al que no sé encontrar solución:

Escenario:
Tomcat 6.0 con un proyecto llamado ejemplo.war corriendo OK.
Este proyecto que tengo corriendo, tengo archivos que los usuarios me suben y posteriormente se pueden descargar, con lo cual, estoy OBLIGADO a tener los archivos en la misma aplicación (y no fuera, como en C:/ por ejemplo).

Si modifico algún aspecto de la aplicacióndesde mi IDE, tengo que mover la carpeta de los archivos que me suben a otro sitio, eliminar la aplicacion, subir la mia de nuevo y VOLVER a copiar los archivos que me han subido de nuevo para dejarlos donde estaban. Un lio, vamos.

¿Hay alguna manera de actualizar por encima el proyecto .war?

Espero no haberme liado mucho con la explicación.

Muchas gracias a todos y un saludo.
  #2 (permalink)  
Antiguo 26/05/2011, 05:06
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 9 meses
Puntos: 89
Respuesta: Actualizar .WAR Tomcat

No estás obligado a tener los archivos en el directorio de la aplicación y si que los puedes tener en C:\ (por ejemplo), simplemente desde tu aplicación puedes hacer referencia a la carpeta donde estén. Es como se hace y como se debe hacer para que no pasen cosas como las que te pasan a tí
  #3 (permalink)  
Antiguo 26/05/2011, 05:35
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Actualizar .WAR Tomcat

La aplicación war no existe, es simplemente un zip que se utiliza para desplegar fácilmente las aplicaciones en los servidores. En el servidor encontrarás una estructura de ficheros similar a la que tienes en tu proyecto.

Si haces un cambio en una clase, sólo tienes que subir el nuevo .class a la carpeta correspondiente en el servidor. Lo mismo para las JSP y los properties, y en el caso del JSP normalmente no necesitas reiniciar el servidor para que aparezcan los cambios.

Si cambias muchos ficheros, para asegurarte de que los cambias todos, se genera el war y se despliega de nuevo.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #4 (permalink)  
Antiguo 26/05/2011, 07:30
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 9 meses
Puntos: 78
Respuesta: Actualizar .WAR Tomcat

Heimish2000 y Xerelo,
muchas gracias por vuestros comentarios, a cada modificación yo generaba todo el .war de nuevo y desplegaba quitando la aplicación anterior.

Heimish2000: Como puedo referenciar un archivo que tengo por ejemplo en C:/ y llamarlo vía web?
Linkando no puedo llegar y la única posibilidad que yo veo es haciendo una copia en ese mismo momento de C:/ a la aplicación para ofrecer su descarga.

Xerelo: Haré eso, subir solo los archivos modificados.

Gracias a ambos de nuevo.
  #5 (permalink)  
Antiguo 26/05/2011, 07:38
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 9 meses
Puntos: 89
Respuesta: Actualizar .WAR Tomcat

No lo tienes que linkar via web, tu lo referencias en tu aplicación. En tu aplicación referenciarás esos archivos de alguna manera, lo haces de manera local (dependiendo de donde se despliegue la aplicación) y lo puedes hacer de forma absoluta (diciendo en que carpeta se encuentran).

A mi también me gusta generar los war y distribuir otra vez todo, no lo que voy tocando.
  #6 (permalink)  
Antiguo 26/05/2011, 08:06
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 9 meses
Puntos: 78
Respuesta: Actualizar .WAR Tomcat

Hola Heimish2000,
si tengo la aplicación en Tomcat corriendo y quiero (por ejemplo) que al pulsar un link se descargue el archivo.pdf como lo referencias tú?

Desde Servlet:
<a href='C:/archivo.pdf'>Link</a> //Esto no puedes!

Desde Clase para trabajar con el fichero, no hay problema, pero lo que quiero es que ese supuesto pdf esté publico para ser llamado desde un link. Entiendo que solo puede estar dentro de la aplicación para hacer esto.

Agradecería me dijeras como lo harías tú.

Gracias de nuevo y un saludo.
  #7 (permalink)  
Antiguo 26/05/2011, 08:16
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 9 meses
Puntos: 89
Respuesta: Actualizar .WAR Tomcat

Ahora, por lo que entiendo, construyes el link dinámicamente poniendo el nombre del archivo a descargar (porque dices que el programa permite subir y descargar cosas), tendrías que añadir, a parte del nombre, la ruta donde esté ese archivo. Obviamente no puedes poner C:\ porque eso tiraría del ordenador desde donde se accede, tú tendrías que poner algo más como IP\ruta\fichero.pdf

¿Cómo generas ahora la ruta de acceso de ese link?

Que lo tengas en Tomcat o en JBoss o en Weblogic o en otro servidor de aplicaciones es indiferente en este caso, tu código es el mismo.
  #8 (permalink)  
Antiguo 26/05/2011, 08:21
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Actualizar .WAR Tomcat

Muchas veces lo que se hace es que que el enlace para descargar un fichero llama a un servlet y éste es el que devuelve el fichero, en ese caso sí podrías poner rutas absolutas.

Realmente no tiene ningún sentido, ya que si cambiases de servidor, tendrías que recompilar la clase con la nueva ruta, además de que tendrías que tener en cuenta el SO del servidor.

El usar el servlet como intermediario con usar rutas relativas, pues está bien para cosas como llevar un registro de descargas, evitar que se lo baje quien no está autorizado y cosas así.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #9 (permalink)  
Antiguo 26/05/2011, 09:05
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 9 meses
Puntos: 78
Respuesta: Actualizar .WAR Tomcat

Realmente la posibilidad que planteaba era:

Ejemplo:
Un usuario me sube una foto desde la aplicación web.
La aplicación guarda la foto en C:/Fotos/
El usuario se quiere descargar la foto desde la aplicación web
La aplicación accede a C:/Fotos/ y la sirve.
Todo esto corriendo desde en el directorio de Apache Tomcat.....


Lo que actualmente estoy haciendo y me va bastante bien es lo que comenta Xerelo, uso un Servlet o un Action que me busca la ruta completa de la aplicación que se está ejecutando para ir a buscar el fichero o guardarlo.

¿Que problema se me planteaba?
Si cada vez que modificaba la aplicación web desde el IDE, generaba el war y lo desplegaba de nuevo en Tomcat. Claro, las "fotos" que me habían subido los usuarios tenia que salvarlas antes y una vez desplegado el .war tenia que volver a ponerlas, y esto era un lio.

Lo ideal entiendo que como se comentaba anteriormente, es subir el class o jsp que únicamente se ha editado.

Un saludo!!
  #10 (permalink)  
Antiguo 26/05/2011, 09:24
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 6 meses
Puntos: 306
Respuesta: Actualizar .WAR Tomcat

Lo que haces es justo lo que decía que desde mi punto de vista no se debe hacer.

Supón que ahora en vez de ejecutar eso en tu ordenador, donde existe una carpeta C:\Fotos, decides pasar la aplicación a un servidor Linux, evidentemente tendrías que cambiar tu clase para que buscase los ficheros en una dirección tipo /apps/user/FOTOS.

Lo lógico es que dentro de tu propio proyecto, crees un directorio para almacenar esas fotos. Así podrías utilizar desde el servlet rutas relativas que te llevasen a http:\\tuproyecto\webcontent\FOTOS

http://code.google.com/p/socialauth/wiki/StrutsSample
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #11 (permalink)  
Antiguo 26/05/2011, 10:28
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 9 meses
Puntos: 78
Respuesta: Actualizar .WAR Tomcat

Hola Xerelo,
creo que no me has entendido o no me he explicado bien. Estamos hablando de lo mismo a mi parecer, es como si te me hubieras saltado de la mitad de mi POST anterior al final, jeje.

Yo ahora mismo, puedo tener mi proyecto en Tomcat o levantarlo desde mi IDE y llevarmelo a otro Tomcat sin problemas.

Todo lo tengo en la misma aplicación, usando rutas relativas lo tengo todo bien encajado.

Lo que desde tu punto de vista no ves correcto es lo que yo quería hacer de pasar las fotos a C:/, pero me lo has aclarado y me quedo como estaba.

Cuando me suben una foto, busco la ruta de ejecución de la aplicación (de esta forma puedo migrarla a un Linux o Windows) y de esta forma guardo en la misma aplicación las fotos.

Un saludo!

Etiquetas: tomcat, war
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:16.