使用 commons-fileupload-1.1 .jar 出现错误
错误如下:
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:179)
org.apache.commons.fileupload.FileUploadBase.createItem(FileUploadBase.java:500)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:116)
upload.doPost(upload.java:18)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)后来到Apache 网站上看了这个问题,它是这样描述的:
Why is NoClassDefFoundError being thrown while parsing? 
This most commonly happens when attempting to rely on a shared copy of the Commons FileUpload jar file provided by your web container. The solution is to include the FileUpload jar file as part of your own web application, instead of relying on the container. 于是我把在自己的WEB-INF下建了一个/lib然后把commons-fileupload-1.1 .jar拷进去,然后把commons\lib下面的删了
但仍然提示同样的错误,不知为什么????
自己写的测试代码如下:import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.disk.*;
import org.apache.commons.fileupload.servlet.*;
public class upload extends HttpServlet 
{    private String uploadPath = "d:\\upload\\"; 
    File uploadfile=null;
    public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException
    {
       try {
             FileItemFactory factory = new DiskFileItemFactory();
             ServletFileUpload  upload=new ServletFileUpload(factory);
              List items=upload.parseRequest(request);
              Iterator iter=items.iterator();
              while(iter.hasNext())
                {
                   FileItem item=(FileItem)iter.next();
                    if(!item.isFormField())
                      {
                            String filename=item.getName();
                             uploadfile=new File(uploadPath+filename);
                             item.write(uploadfile);   
                      }
                 }
                
            }catch(Exception e) { }
     }
          
}