Ver Mensaje Individual
  #8 (permalink)  
Antiguo 10/01/2013, 05:47
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Ruta absoluta y relativa

Hola:

Vamos por partes. La ruta "relativa" que has puesto " \images\foto.jpg" no es relativa, si lleva una barra delante, siempre es absoluta, así que estará buscando en c:\images\foto.jpg

La ruta relativa debe ponerse según los directorios donde se está ejecutando tu aplicación, no el cómo esté organizado tu proyecto. Si tu aplicación es un war y va a correr en un JBoss/Tomcat/GlassFish o equivalente, el directorio de ejecución posiblemente sea el directorio bin de esa instalación de JBoss/Tomcat/GlassFish, aunque depende de cómo lo estés arrancando (si como servicio/demonio, a mano, etc).

En Tomcat, por ejemplo, el path relativo si está ejecutando en TOMCAT/bin sería algo así como "../webapps/tuaplicacion/path donde tu war deje las imagenes/foto.jpg".

Lo habitual para estos casos, si quieres guardar la imagen en algún sitio, es pedir en tu servlet el ServletContext para saber cual es el path absoluto en el que está instalado tu war y a partir de ahi, con path absoluto también, ubicar el fichero. Para obtener este path se puede hacer algo como getServletContext().getRealPath("index.jsp") (o cualquier otro jsp que tengas en el raíz de tu aplicación web).

Este mecanismo tiene un pequeño problema y es que si redespliegas/actualizas tu aplicación, toda ella se borra y se vuelve a desplegar, por lo que perderás los ficheros que has subido. Por ello otra opción es crear una carpeta con path absoluto fuera de tu webapp para guardar ahí los ficheros.

Se bueno.
__________________
Apuntes Java
Wiki de Programación