Java - ¿QUE SIGNIFICA ESTE ERROR?

 
Vista:

¿QUE SIGNIFICA ESTE ERROR?

Publicado por CARCAHARAS (58 intervenciones) el 12/01/2006 23:47:40
Hola buenas!
Vereis tengo este codigo(no es necesario que lo leais entero!):

package es.unirioja.dmc.servauto;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.net.*;

import org.apache.commons.fileupload.*;
import org.apache.commons.*;
import java.util.*;

public class PruebaFileUpload extends HttpServlet {
private static final String CONTENT_TYPE = "text/html";

[COLOR="SeaGreen"]//Initialize global variables[/COLOR]
public void init() throws ServletException {
}

[COLOR="seagreen"]//Process the HTTP Get request[/COLOR]
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>PruebaFileUpload</title></head>");
out.println("<body bgcolor=\"#ffffff\">");
System.out.println("Comenzamos procesamiento de ficheros");
procesaFicheros(request,out);
out.println("</body></html>");
out.close();
}

public boolean procesaFicheros(HttpServletRequest req, PrintWriter out){
try{
[COLOR="seagreen"] //construimos el objeto que es capaz de parsear la peticion[/COLOR]
DiskFileUpload fu = new DiskFileUpload();

[COLOR="seagreen"] //maximo numero de bytes[/COLOR]
fu.setSizeMax(1024*512);

[COLOR="seagreen"] //tamaño por encima del cual los ficheros son directamente escritos en disco[/COLOR]
fu.setSizeThreshold(4096);

[COLOR="seagreen"] //directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria[/COLOR]
fu.setRepositoryPath("/ji");
[COLOR="seagreen"]
//ordenamos procesar los ficheros[/COLOR]
[COLOR="Red"] List fileItems = fu.parseRequest(req);[/COLOR]

if(fileItems==null){
return false;
}
out.print("<br>El número de ficheros subidos es de:"+fileItems.size());

[COLOR="seagreen"] //Iteramos cada fichero[/COLOR]

Iterator i=fileItems.iterator();
FileItem actual=null;

while(i.hasNext()){
actual=(FileItem)i.next();
String fileName = actual.getName();
out.print("<br>Nos has subido el fichero" + fileName);

[COLOR="seagreen"] //construimos un objeto file para recuperar el trayecto completo[/COLOR]
File fichero= new File(fileName);

[COLOR="seagreen"] //Nos quedamos solo con el nombre y descartamos el path[/COLOR]
fichero= new File("c:\\DIRECTORIO\\"+fichero.getName());

//escribimos el fichero colgando del nuevo path
actual.write(fichero);
}
}catch(Exception e){
System.out.println("error de aplicacion "+e.getMessage());
}
return true;
}
[COLOR="seagreen"]
//Clean up resources[/COLOR]
public void destroy() {
}
}

En este codigo en la linea que os he marcado en rojo me da este error:

mensaje

descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.

excepción

javax.servlet.ServletException: La ejecución del Servlet lanzó una excepción

causa raíz

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.commons.fileupload.DefaultFileItemFactory.createItem(DefaultFileItemFactory.java:102)
org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:500)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:268)
es.unirioja.dmc.servauto.PruebaFileUpload.procesaFicheros(PruebaFileUpload.java:56)
es.unirioja.dmc.servauto.PruebaFileUpload.doPost(PruebaFileUpload.java:36)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

El caso es que al compilar el codigo no me da ningun error y no se en donde más me puede faltar una clase o lo que sea que significa ese error.

Aver si me podeis ayudar ok?Muchas gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿QUE SIGNIFICA ESTE ERROR?

Publicado por Salvador (62 intervenciones) el 13/01/2006 08:50:34
Segun parece te falta la clase DeferredFileOutputStream en el paquete org/apache/commons/io/output/

A mi entender parece que la importacion del paquete ha ido mal o dicho paquete esta corrupto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿QUE SIGNIFICA ESTE ERROR?

Publicado por SARA (58 intervenciones) el 13/01/2006 12:05:06
HOLA! VALE MUCHAS GRACIAS YA LO VOY A PROBAR. UN SALUDO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿QUE SIGNIFICA ESTE ERROR?

Publicado por SARA (58 intervenciones) el 13/01/2006 23:05:28
¡¡¡¡¡¡¡¡¡¡¡¡¡SOLUCIONADO!!! LO QUE HE HECHO ES AÑADIR LA LIBRERIA COMMONS-IO 1.1.JAR AL CLASSPATH DEL PROYECTO Y TODO FUNCIONA PERFECTAMENTE!!!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar