2016-08-24 165 views
0

我正在使用Maven和Tomcat進行Web開發。我得到了以下錯誤消息:java.lang.NoClassDefFoundError但.class文件已經存在

Error message:" java.lang.NoClassDefFoundError: /api/core/dto/IDTO " .

然而,IDTO.class已經在文件夾中存在如下:

/api/core/dto/IDTO.class

我查了幾個答案約NoClassDefFoundError,他們都說有關運行時錯誤PATH。出了什麼問題?爲什麼我得到例外?

+0

檢查你的jar文件是由maven下載的,並確保你下載正確的jar文件 – Vaseph

回答

0

該點是拍攝該圖像的目錄。它應該是:

  • 如果您的應用部署,比如說爲/ opt/tomcat的/應用/ yourapp打開的目錄,應該是裏面的/ opt/tomcat的/應用/ yourapp/WEB-INF /班/ api/core/dto/IDTO.class
  • 如果您的應用程序中包含maven作爲.war文件,則類文件應位於.war中的類似位置:WEB-INF/classes/api/core/dto /IDTO.class
  • 如果你的類包含在一個依賴關係中,比如說一個mylibrary.jar文件,你應該確保這個jar打包在WEB-INF/lib/mylibrary.jar的war中。罐子裏面文件中的類應等於其全名的路徑中找到:API /核心/ DTO/IDTO.class

如果將.jar不是.war文件裏面,你應該檢查你的pom.xml查找依賴項,並確保依賴項中沒有<scope>元素。例如,「提供」的錯誤範圍會使罐子不被包裝在戰爭中。