2012-08-01 36 views
0

作爲一個標題,我想使用servlet在我的jsp項目中執行多個上傳文件。我正在新項目中測試它,並且沒有問題。然後我試圖把它落實到我的項目具有代碼:多個上傳文件JSP servlet總是失敗

boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
     if (!isMultipart) { 
     } else { 
      FileItemFactory factory = new DiskFileItemFactory(); 
      ServletFileUpload upload = new ServletFileUpload(factory); 
      List items = null; 
      try { 
       items = upload.parseRequest(request); 
      } catch (FileUploadException e) { 
       e.printStackTrace(); 
      } 
      Iterator itr = items.iterator(); 
      while (itr.hasNext()) { 
       FileItem item = (FileItem) itr.next(); 
       if (item.isFormField()) { 
       } else { 
        try { 
         String itemName = item.getName();; 
         File savedFile = new File("D://uploadedFiles"); 
         item.write(savedFile); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
       } 
      } 
     } 

    } 

但我總是得到錯誤是這樣的:

HTTP Status 500 - 

type Exception report 

message 

descriptionThe server encountered an internal error() that prevented it from fulfilling this request. 

exception 

javax.servlet.ServletException: PWC1392: Error instantiating servlet class servlet.ManagementProdukServlet 

root cause 

java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException 

root cause 

java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileUploadException 

note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1.2 logs. 

但我有這個進口在我的servlet:

import controller.Produk; 
import dao.DataAksesAdmin; 
import java.io.File; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.ArrayList; 
import java.util.Collection; 
import java.util.Iterator; 
import java.util.List; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.MultipartConfig; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.apache.commons.fileupload.FileItem; 
import org.apache.commons.fileupload.FileItemFactory; 
import org.apache.commons.fileupload.FileUploadException; 
import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
import org.apache.commons.fileupload.servlet.ServletFileUpload; 

有人能告訴我我的代碼有什麼問題,導致我的上傳表單在我的項目中無法正常工作,但它在新項目中工作? 有時我沒有得到錯誤代碼,但我有錯誤:「連接重置」在我的瀏覽器上。它影響我的項目嗎?這是什麼原因導致了我的問題?

對不起英語感到抱歉。

回答

1

即使您在源文件中導入,該jar也應該放在classpath中。如果您使用ide運行,請確保您進行了清理構建,並且一旦沒有錯誤部署並啓動項目。如果您正在部署爲戰爭,請確保您的戰爭包含所需的jar文件。