QUE SIGNIFICA ESTE ERROR?
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!
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!
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.
Cuando no haces esto tan solo consigues que no se te ayude la siguiente vez, lease esta vez.
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
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
Un saludo
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
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
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!
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!
