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

java.io.filenotfoundexception

Estas en el tema de java.io.filenotfoundexception en el foro de Java en Foros del Web. Hola soy nuevo en el foro espero que puedan ayudarme les doy las gracias de antemano. mi problema es el siguiente: Estoy creando una aplicacion ...
  #1 (permalink)  
Antiguo 05/05/2011, 09:45
 
Fecha de Ingreso: mayo-2011
Ubicación: Sevilla
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
java.io.filenotfoundexception

Hola soy nuevo en el foro espero que puedan ayudarme les doy las gracias de antemano. mi problema es el siguiente:

Estoy creando una aplicacion web la cual tiene la funcionalidad de subir archivos al servidor utilizo commons.fileupload como vi en este mismo foro. todo funcionaba perfectamente pero tuve que formatear el pc debido a un virus y ahora al montar de nuevo el proyecto me aparece el siguiente error cuando intento subir un archivo.

org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /subir.jsp en línea 25

22: /*cual sera la ruta al archivo en el servidor*/
23: File archivo_server = new File("c:/subidos/"+item.getName());
24: /*y lo escribimos en el servido*/
25: item.write(archivo_server);
26: out.print("Nombre --> " + item.getName() );
27: out.print("<br> Tipo --> " + item.getContentType());
28: out.print("<br> tamaño --> " + (item.getSize()/1240)+ "KB");


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:519)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)


causa raíz

java.io.FileNotFoundException: c:\subidos\C:\Documents and Settings\Jorge\Mis documentos\PROYECTO\ManualXML.pdf (El nombre de archivo, directorio o etiqueta del volumen no es válido)
java.io.FileOutputStream.open(Native Method)
java.io.FileOutputStream.<init>(FileOutputStream.j ava:194)
java.io.FileOutputStream.<init>(FileOutputStream.j ava:145)
org.apache.commons.fileupload.disk.DiskFileItem.wr ite(DiskFileItem.java:439)
org.apache.jsp.subir_jsp._jspService(subir_jsp.jav a:83)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:386)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
  #2 (permalink)  
Antiguo 05/05/2011, 11:27
Avatar de LordJhony  
Fecha de Ingreso: septiembre-2010
Mensajes: 472
Antigüedad: 14 años, 3 meses
Puntos: 24
Respuesta: java.io.filenotfoundexception

Aclaro no estoy muy seguro...
Pero creo que el archivo que intentas subir no se encuentra en la ruta especificada y por eso te sale la excepcion.
  #3 (permalink)  
Antiguo 05/05/2011, 15:48
 
Fecha de Ingreso: mayo-2011
Ubicación: Sevilla
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: java.io.filenotfoundexception

lo hago todo como antes de formatear el pc elijo el archivo en el form y lo subo antes iba perfecto y desde que formatee aparecio el error
  #4 (permalink)  
Antiguo 06/05/2011, 04:17
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: java.io.filenotfoundexception

No, has tenido que cambiar algo más.

Cita:
File archivo_server = new File("c:/subidos/"+item.getName());
A la ruta "C:/subidos" le añades algo más y teniendo en cuenta el mensaje que te sale

Cita:
c:\subidos\C:\Documents and Settings\Jorge\Mis documentos\PROYECTO\ManualXML.pdf
Hay que suponer que del item (cuyo origen desconocemos) estás cogiendo
Cita:
C:\Documents and Settings\Jorge\Mis documentos\PROYECTO\ManualXML.pdf
__________________
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.
  #5 (permalink)  
Antiguo 06/05/2011, 10:29
 
Fecha de Ingreso: mayo-2011
Ubicación: Sevilla
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: java.io.filenotfoundexception

esta todo como antes he hecho un copy paste de las paginas jsp para montar de nuevo el proyecto
al pulsar sobre "native method" me sale:

class file editor

the jar file "rt.jar" has not source attachment.

pero le facilito la ruta de rt.jar y no funciona, al facilitarsela me dice lo siguiente:


has not source attachment for fileoutputstream.class que es una de las clases de java.io
  #6 (permalink)  
Antiguo 06/05/2011, 13:18
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: java.io.filenotfoundexception

Primera cosa, estás hablando de errores que te da el editor que usas sin decir cual es, y cuanta más información des, más fácil será ayudarte.

Cita:
class file editor

the jar file "rt.jar" has not source attachment.
Esto no tiene que ver con el error, ya que si no estuviera la librería, el error sería que no encuentra la librería, no que no encuentra el fichero. Esto tiene que ver con que no has reinstalado del todo bien eclipse, y no puede mostrarte correctamente el código fuente de funciones de rt.jar en modo debug.

Pero es algo que no te afecta, ya que lo normal que no necesites debuggear el código fuente de java.

El problema está donde te he dicho, estás juntando "c:\subidos" + "C:\Documents and Settings\Jorge\Mis documentos\PROYECTO\ManualXML.pdf" para crear una ruta.

Aunque tenías razón en una cosa (no has tocado el código), es necesario que crees un método para quedarte sólo con la parte del nombre del archivo. Fíjate, gracias al formateo has detectado un error de "código".


Pista: ¿A que no has usado tu navegador habitual?
__________________
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.
  #7 (permalink)  
Antiguo 07/05/2011, 04:14
 
Fecha de Ingreso: mayo-2011
Ubicación: Sevilla
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: java.io.filenotfoundexception

utilizo como bien dices eclipse en su version helios con la ultima version de jdk y la ultima version de tomcat tb utilizo la version actualizada de commons.fileupload y commons.io y mi pregunta es:
si no he cambiado nada pq ahora me da error y antes subia el archivo a la perfeccion
el codigo necesario para subir el archivo lo saque de este mismo foro y funcionaba perfecto.

pero en una cosa tienes razon utilizando el navegador en vez de ejecurtar dentro de eclipse si que funciona.
un millon de gracias por la ayuda!!!!
  #8 (permalink)  
Antiguo 07/05/2011, 04:23
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: java.io.filenotfoundexception

Cita:
el codigo necesario para subir el archivo lo saque de este mismo foro y funcionaba perfecto.
Funcionaba perfecto porque cuando lo probaste lo hiciste con Firefox (seguramente).

El problema es que explorer te devuelve la ruta completa, no el nombre del archivo, y como tú no puedes obligar a nadie a usar un navegador en concreto, realmente ese código no está bien.

Si buscas por el foro, verás bastante gente con el problema contrario, que quieren que el Firefox les dé la ruta completa, algo que el Firefox no hace. Así que te tocó la parte solucionable del problema, recortar la ruta devuelta por el explorer se puede hacer, conseguir la ruta completa con Firefox, no.
__________________
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 07/05/2011, 04:35
 
Fecha de Ingreso: mayo-2011
Ubicación: Sevilla
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: java.io.filenotfoundexception

como hago para extraer solo el nombre del archivo en vez de la ruta completa que era lo que hacia solo antes del formateo sin necesidad de metodo
lo he intentado con substring pero lo me permite utilizar "\" como indice si pongo la barra normal como la ruta tiene la barra invertida no me la capta.
  #10 (permalink)  
Antiguo 07/05/2011, 05:48
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años, 7 meses
Puntos: 306
Respuesta: java.io.filenotfoundexception

Tienes la solución fácil

Cita:
FilenameUtils.getName(filename)
Evidentemente, los de apache saben que este problema se va a presentar, y han añadido un método para corregirlo.

De forma manual y que sirve para aprender un poco más

\ se utiliza como elemento para escapar otros caracteres, por lo que para evitar ambigüedades, cuando quieres escribir el caracter \ tienes que usar \\
Cita:
StringTokenizer g = new StringTokenizer(ruta, "\\");
Y curiosamente, si quieres usar el método split(), por ser el parámetro una regex
Cita:
ruta.split("\\\\")
La regex se convierte en String, por lo que para tener una String "\\" necesitas escapar dos barras. No me parece que esto tenga mucha lógica, pero será por el funcionamiento de las regex.


Luego tienes el problema de que en función de qué servidor uses, esto no vale para Linux.

FilenameUtils ya lo tiene en cuenta, pero para que tu código "manual" sea independiente del SO del servidor

Cita:
StringTokenizer g = new StringTokenizer(ruta, File.separator)
__________________
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 07/05/2011, 12:09
 
Fecha de Ingreso: mayo-2011
Ubicación: Sevilla
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: java.io.filenotfoundexception

gracias por a ayuda

estando todo como antes y sin cambiar nada en el codigo lo que fallaba era que tenia internet explorer desactualizado al actulizarlo todo vuelve a estar como antes
gracias por la ayuda he aprendido cosas nuevas gracias!!!

Etiquetas: jre, jsp-servlets, tomcat
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 00:10.