Weblogic 服务器 - 即使库位于类路径中,也会为 TIFFImageReader 获取 NoClassDeffError

Weblogic server - Getting NoClassDeffError for TIFFImageReader even when the library is in classpath

我正在研究 TIFF 到 JPEG 的转换程序。我正在使用来自 jai-imageio-core.1.3.1.jar 的 TIFF 实现,它在类路径中可用。

我在 eclipse 的本地环境中一切正常(运行 在 tomcat 服务器上)。但是,当我在 Weblogic 中部署相同内容时,出现以下错误。 Weblogic 服务器无法识别 TIFF 实现 类。我无法找到丢失的 link。请帮忙。

java.lang.NoClassDefFoundError: com/github/jaiimageio/impl/plugins/tiff/TIFFImageReader
        at com.github.jaiimageio.impl.plugins.tiff.TIFFImageReaderSpi.createReaderInstance(TIFFImageReaderSpi.java:118)
        at javax.imageio.spi.ImageReaderSpi.createReaderInstance(ImageReaderSpi.java:320)
        at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:529)
        at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:513)
        at javax.imageio.ImageIO.read(ImageIO.java:1443)
        at javax.imageio.ImageIO.read(ImageIO.java:1308)

我会回答我自己的问题。问题已解决。问题在于 jai-imageio-core.1.3.1.jar 文件存在于多个位置。它存在于我的 WEB-INF/lib 文件夹中的应用程序 war 文件中。然而,相同的 jar 文件也存在于 weblogic adm 根目录中的 war 之外。 (我的错)

我猜 weblogic 显然只在 1 个地方期望 jar 文件(特别是 java SPI 实现 jar)

搜索weblogic下的所有目录以确保没有额外的同名jar文件也是一个好主意。

我只有一个 jai-imageio-core.1.3.1.jar 文件(在 WAR 文件中)并发现了这个错误。 Weblogic 托管服务器重启帮助了我。