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.
项目在 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.