QUE SIGNIFICA ESTE ERROR?

carcaharas
10 de Noviembre del 2009
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!

jaquiso
10 de Noviembre del 2009
Apreciado carcaharas, ya que has tenido el tiempo de escribir esta nueva pregunta quiza tambien puedas sacar el tiempo para agradecer la ayuda que se te ha prestado en anteriores consultas y de paso comentar si las soluciones te han servido de algo.
Cuando no haces esto tan solo consigues que no se te ayude la siguiente vez, lease esta vez.

carcaharas
10 de Noviembre del 2009
Hola! bueno la verdad es que tienes raz贸n. Escribo en varios foros y de verdad que muchas veces escribo a ver si la ayuda me ha ido bien o no, o si he buscado otra manera la pongo en com煤n. Un saludo

jaquiso
10 de Noviembre del 2009
No pasa nada, es que me pone negro que despues de tomarme un tiempo tratando de ayudar a alguien este no se digne a dar las gracias.

Un saludo

jaquiso
10 de Noviembre del 2009
Tiene pinta de que el editor que usas para compilar s铆 tiene en el classpath la librer铆a necesaria pero el servidor web no la tiene.
La librer铆a parece ser la commons-io-[version_lib].jar. Buscala y ponla en la carpeta WEB-INF/lib del proyecto, ahi deber铆a encontrarla el servidor web.
Lo de [version_lib] no esta en el nombre del jar evidentemente, te lo he puesto porque no se que version tendras, un ejemplo de nombre correcto es commons-io-1.0.jar

sara
10 de Noviembre del 2009
Si jaquiso, si tienes toda la raz贸n que m铆nimo que gracias por la ayuda y luego decir si te ha servido o no, tienes toda la raz贸n!
Pues lo que me comentas voy a probarlo a ver y por supuesto os comentare que tal me ha ido la solucion.

Un saludo y cuidad铆n con el alcohol el finde!