Estuve lideando con un problema que me tomó un par de días resolver. Tengo un código en Java que utilizó para listar los archivos dentro de una carpeta. Uno simplemente crea una instancia de la clase java.io.File pasando en el constructor la ruta de la carpeta. Después solamente se llama el método "listFiles" y te retorna un arreglo con los archivos encontrados.
La ruta que necesitaba listar era de tipo UNC. La sintaxis utilizada por Microsoft para accesar una localidad de red compartida. Esta ruta estaba protegida con usuario y contraseña en el servidor. No obstante estos ya estaban guardados por windows de manera que no me volvía a preguntar por ellos cada vez que accesaba la dirección de red.
El problema en sí era que la clase de abajo (no es la misma, solo para usos de ejemplificación) funcionaba correctamente si la ejecutaba en línea de comandos. Pero si la usaba en mi aplicación web corriendo en Tomcat, la misma carpeta no se podía encontrar.
La ruta que necesitaba listar era de tipo UNC. La sintaxis utilizada por Microsoft para accesar una localidad de red compartida. Esta ruta estaba protegida con usuario y contraseña en el servidor. No obstante estos ya estaban guardados por windows de manera que no me volvía a preguntar por ellos cada vez que accesaba la dirección de red.
El problema en sí era que la clase de abajo (no es la misma, solo para usos de ejemplificación) funcionaba correctamente si la ejecutaba en línea de comandos. Pero si la usaba en mi aplicación web corriendo en Tomcat, la misma carpeta no se podía encontrar.
import java.io.File;
public class FolderLister {
public File[]listFiles(String address) {
File folder = new File(address);
if(folder.exists()) {
return file.listFiles();
}
return null;
}
public static void main(String [] args) {
FolderLister folderLister = new FolderLister();
File[] listOfFiles = folderLister.listFiles("\\\\remote-host\\path");
for (File f : listOfFiles) {
System.out.println(f.getName());
}
}
}
Intenté probar con el "catalina.policy" pero me di cuenta que nada tenía que ver con mi problema. Después de googlear con las palabras correctas encontré un foro donde indicaban que el Tomcat tenía que ser arrancado con el usuario que tenía acceso a la carpeta compartida. Esto se puede configurar fácilmente en las propiedades del servicio en la pestaña de "Log On".
No hay comentarios:
Publicar un comentario