【问题标题】:Tomcat Build Error: java.lang.NoClassDefFoundErrorTomcat 构建错误:java.lang.NoClassDefFoundError
【发布时间】:2019-10-07 23:28:35
【问题描述】:

该项目在 tomcat localhost 中工作正常,但是当我在远程 tomcat 中上传它时,我得到了这个错误:/,我有一个在类路径中包含 ImageReaderFactory 类的 jar,我不明白可能是什么问题, 我清除了 /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

【问题讨论】:

  • jar 的位置在哪里?
  • jar的位置是/WebContent/WEB-INF/lib
  • WebContent 是在 webapps 中吗?
  • 是的,/Desktop/myApp/WebContent/WEB-INF/lib
  • @aksappy 我添加了目录的图像

标签: java tomcat noclassdeffounderror


【解决方案1】:

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

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

使用mavengradle 之类的构建工具。这些工具为编译、归档、测试和部署应用程序带来了标准,让您不必担心与环境相关的问题。

【讨论】:

  • 感谢@aksappy 的回复,我的应用在/tomcat/webapps/myapp/WEB-INF 下,但我不确定$CATALINA_BASE 路径,
  • 我想我发现了问题,当我上传战争时,我在日志中得到了这个:09-Oct-2019 12:18:04.598 WARNING [http-apr-8080-exec-328] org.apache.tomcat.util.scan.StandardJarScanner.processURLs Failed to scan [file:/usr/local/tomcat/lib/dcm4che-imageio-opencv-5.18.1.jar] from classloader hierarchy java.io.FileNotFoundException: /usr/local/tomcat/lib/dcm4che-imageio-opencv-5.18.1.jar (No such file or directory) at java.util.zip.ZipFile.open(Native Method) ... 所有罐子都一样,但我的 tomcat 在home/deploy/it/tomcat/ 而不是/usr/local/tomcat/ ,会是这个问题吗?
  • 你是如何安装tomcat的,你是如何启动它的
  • 我不知道它是如何安装的,安装它的人正在度假,我被卡住了:/
  • 你是如何启动服务器的?您可以从放置战争的 bin 文件夹开始吗?
猜你喜欢
  • 1970-01-01
  • 2021-09-02
  • 2011-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 2021-11-20
  • 1970-01-01
相关资源
最近更新 更多