2010-12-15 94 views
1

我使用Apache的FileUpload和我得到一個java.lang.NoClassDefFoundErrorjava.lang.NoClassDefFoundError

我首先想到的是要檢查的.jar是否在類路徑上 - 我注意到(在Eclipse)是該庫面積下,有兩個不同的部分:

  • 的Apache Tomcat V6.0
  • 的Web應用程序庫

所有OT她的圖書館列在「Web App Libraries」下,這個特定的圖書館在Apache Tomcat v6.0下列出。

我假設這是造成這個問題的原因...我的代碼在下面...但我認爲它是一個配置問題而不是代碼問題。

最後 - web.xml不是問題,因爲我已經從servlet中取出了FileUpload的東西,並且發現servlet很好。

public class SaveImage extends HttpServlet{ 

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { 
    System.out.println("Got here"); 
    response.setContentType("text/html;charset=UTF-8"); 
    boolean isMultipart = ServletFileUpload.isMultipartContent(request); 
} 
+2

此*有*爲類路徑問題。您認爲IDE在類路徑上的內容不像Web服務器認爲在類路徑中那麼重要。應用程序部署後(在部署目標目錄中),WEB-INF/lib'文件夾中有什麼? – Asaph 2010-12-15 05:07:07

+0

事情是測試servlet容器是內置在Eclipse中的,因此Eclipse認爲在類路徑上的任何東西都是Tomcat會得到的(希望是有道理的)。但是,感謝您澄清這一點,我現在知道在哪裏尋找問題。 – Ankur 2010-12-15 06:25:04

+0

謝謝亞薩,你說得對,現在都解決了。基本上我需要刪除已經進入Tomcat構建路徑的一些東西,並將它們讀取到「Web App Libraries」構建路徑 – Ankur 2010-12-15 06:30:28

回答

1

是一個類路徑的問題。您認爲IDE在類路徑上的內容不像Web服務器認爲在類路徑中那麼重要。應用程序部署後(在部署目標目錄中),WEB-INF/lib文件夾中有什麼?這就是真正的類路徑(當然還有Web服務器的庫)。