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

Servlets y FileOutputStream en jakarta-tomcat 5

Estas en el tema de Servlets y FileOutputStream en jakarta-tomcat 5 en el foro de Java en Foros del Web. Hola a todos. Estoy utilizando java 1.5 y jakarta tomcat 5 sobre Windows xp para crear servlets. El problema es el siguiente. Cuando utilizo la ...
  #1 (permalink)  
Antiguo 26/05/2006, 15:51
 
Fecha de Ingreso: octubre-2004
Mensajes: 12
Antigüedad: 19 años, 6 meses
Puntos: 0
Sonrisa Servlets y FileOutputStream en jakarta-tomcat 5

Hola a todos.

Estoy utilizando java 1.5 y jakarta tomcat 5 sobre Windows xp para crear servlets.

El problema es el siguiente.

Cuando utilizo la clase FileOutputStream en el servlet de esta manera:

FileOutputStream file=new FileOutputStream("nuevo.txt");

se crea el archivo en la siguinete ruta C:\Windows\System32\
y Yo quiero que lo guarde en la carpeta donde està el servlet que lo creò, es decir C:\ruta de tomcat\webapps\ejemplo\WEB-INF\classes\

OJO: en la sentencia FileOutputStream("nuevo.txt");
no escribo la ruta de tomcat porque quiero que la aplicacion pueda correr en cualquier servidor tomcat y Sistema operativo, sin necesidad de volver a compilar para que conozca la nueva ruta de tomcat.

Les agradezco la colaboracion. GRACIAS
  #2 (permalink)  
Antiguo 27/05/2006, 10:47
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
ServletContext.getRealPath(...)

http://java.sun.com/j2ee/sdk_1.3/tec...va.lang.String)

Con eso en Tomcat no deberias tener problemas, aunque en algunos contenedores web puede darlos.
  #3 (permalink)  
Antiguo 29/05/2006, 12:16
 
Fecha de Ingreso: octubre-2004
Mensajes: 12
Antigüedad: 19 años, 6 meses
Puntos: 0
Muchas gracias GreenEyed. Tu consejo me sirvio.

Te hago una pregunta.

Como puedo hacer lo mismo pero desde una CLASE que no sea servlet?

Nuevamente te agradezco por la ayuda.

Gracias
  #4 (permalink)  
Antiguo 29/05/2006, 13:25
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Desde una clase pura y dura no es tan sencillo, desafortunadamente.

Existe la propiedad de sistema user.dir, que te dice el directorio desde el que se lanzo el programa (puede variar si se usa un acceso directo, si se lanza en linea de comandos o se lanza como servicio de sistema...)

Tambien existe una cosa que te permite, en algunos casos, averiguar la localizacion de una clase, usando getClass().getProtectionDomain().getCodeSource().g etLocation(), lo cual, a veces, te devolveria una URL que tendrías que interpretar para averiguar cual es el sitio desde el que se cargo esa clase.
Pero a veces a mi me devuelve null el protection domain y zas, no se puede.

Lo que se suele recomendar es usar directorios conocidos, como el directorio temporal, el directorio del perfil del usuario, o pasarle el directorio como propiedad o parametro a la aplicación.
  #5 (permalink)  
Antiguo 08/06/2006, 10:14
 
Fecha de Ingreso: octubre-2004
Mensajes: 12
Antigüedad: 19 años, 6 meses
Puntos: 0
GreenEyed.

Muchas gracias por tu ayuda. La sugerencia que me diste para capturar
la ruta de de ubicacion de una clase java getClass().getProtectionDomain().getCodeSource().g etLocation me sirvio.

Te agradezco mucho tu ayuda.
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 09:10.