Tomcat Build Error: java.lang.NoClassDefFoundError

Tomcat Build Error: java.lang.NoClassDefFoundError

项目在 tomcat localhost 中工作正常,但是当我将它上传到远程 tomcat 时,我得到了这个错误:/,我有包含 ImageReaderFactory class 的 jar class路径,我不明白可能是什么问题, 我清除了 /tomcat/work/Catalina/localhost 文件夹,但总是出现相同的错误:java.lang.NoClassDefFoundError

07-Oct-2019 23:06:25.584 SEVERE [http-apr-8080-exec-267] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [UploadServlet] in context with path [/MyServer] threw exception [Servlet execution threw an exception] with root cause
 java.lang.NoClassDefFoundError: org/dcm4che3/imageio/codec/ImageReaderFactory
    at org.dcm4che3.imageio.plugins.dcm.DicomImageReader.setMetadata(DicomImageReader.java:794)
    at org.dcm4che3.imageio.plugins.dcm.DicomImageReader.readMetadata(DicomImageReader.java:713)
    at org.dcm4che3.imageio.plugins.dcm.DicomImageReader.read(DicomImageReader.java:452)
    at com.project.dicomserver.UploadServlet.getFrameIcon(UploadServlet.java:86)
    ....

有人有什么想法吗?

image

在您的特定情况下,有很多事情可能会出错。所以尽我所知回答。通过添加尽可能多的细节来对问题进行修改,我们可以为您提供进一步的帮助。

tomcat 中的每个应用程序都需要具有特定的文件夹结构。文件夹结构已记录 here。简而言之,必须将 war 个文件部署到 $CATALINA_BASE/webapps/ 目录中。

所以如果你的应用是“myapp”,那么肯定有一个$CATALINA_BASE/webapps/myapp目录。

$CATALINA_BASE/webapps/myapp 目录中,我们需要WEB-INF。不是 $CATALINA_BASE/webapps/myapp/WebContent/WEB-INF,而是 $CATALINA_BASE/webapps/myapp/WEB-INF!案件很重要。

如果您的应用程序不是这样部署到 vanilla tomcat,它将无法正常工作。阅读官方documentation

现在关于你的开发环境,看看你的eclipse配置有没有修改。 Export As War 选项可以在多个位置修改,所有这些选项都会对您生成的 war 文件产生影响。如有疑问,我会看这个 link

Use a build tool like maven or gradle. These tools bring standards for compiling, archiving, testing and deploying applications and makes you worry less on environment related issues.