entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Problemas al eliminar archivo en JSP

Buenas, tengo un pequeño problema con un JSP que quiero ejecutar.

este es el código

    <%
 File folder = new File("C:/Servidorweb/apache-tomcat-6.0.37/webapps/facturacion_sms/archivos");
            File[] listOfFiles = folder.listFiles();

            //Inicializa array contenedor de nombres de archivos 
            String[] array = new String[listOfFiles.length];

            for (int i = 0; i < listOfFiles.length; i++)  //Recorrido a lista de archivos , se almacenan en array
            {
                if (listOfFiles[i].isFile()) 
                {
                    array[i] = listOfFiles[i].getName();
                    //out.println(array[i]);
                }
            }

            for(int j = 0; j < array.length ;j++)
            {
                 String archivostr =  "C:/Servidorweb/apache-tomcat-6.0.37/webapps/facturacion_sms/archivos/" + array[j];

                 out.println(archivostr);

                    File archivo = new File(archivostr);

                    try
                    {

                    archivo.delete();
                    }
                     catch (Exception e)
                  {
                    out.println("An exception occurred: " + e.getMessage());
                  }

            }

%>

En sí lo que hace este ejemplo (el ejemplo lo hice para debugear solamente esa parte que falla, ya que el JSP original contiene más procesos)

es leer una lista de archivos de una carpeta , meterlos a un array, hacer el recorrido, imprimir la ruta completa e intentar eliminar ese archivo.

En mi servidor local funciona perfectamente, pero a la hora de pasarlo al servidor de producción y hacer pruebas no funciona el archivo.delete(); y no me manda ninguna excepción. no se a que se deba, ya que la carpeta del proyecto y el jsp en sí, tiene permisos de root.

El servidor web es tomcat6, y el SO es Red Hat, las librerías estan importadas y todo esta correctamente instalado.

Alguna idea?

1 Respuesta

1voto

Leonardo-Tadei Puntos227300

Hola Alejandro,

90% probable de que sea un problema de rutas o de permisos.

En un servidor RedHat la ruta C:\ no existirá... tenés que poner la ruta del propio servidor. Con una ruta incorrecta, el vector tendrá 0 elementos y el bucle no se ejecutará.

En un servidor Tomcat, por más que el proyecto y los directorios sean de root, los procesos no se ejecutarán como root por cuestiones de seguridad (salvo que se haya cambiado la configuración de Tomcat para hacer esta barbaridad, ya que si se ejecutara como root, un fallo podría exponer, borrar o modificar archivos que son indispensables para el funcionamiento del sistema). Sin los permisos adecuados, el delete() se ejecuta pero no se puede borrar el archivo.

Saludos!

0voto

Alejandro Castillo A comentado

jeje me falto mencionar que cuando paso mi proyecto al servidor de producción si modifico la ruta, y de hecho si lee los archivos(la ruta es correcta) y hace todo el proceso. tendré que revisar a detalle la parte de los servicios. Muchas gracias.

0voto

Leonardo-Tadei comentado

Entonces, fijate el tema de los permisos. Primero de todo, verificá con qué usuario corre tu aplicación Tomcat, luego si el usuario tiene permitido el login, logueate como él y fijate si el archivo se puede borrar.

PD: si ponés un código y explicás otro, es más difícil ver los errores ;-)

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta