2016-08-24 163 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>元素。例如,“提供”的错误范围会使罐子不被包装在战争中。