NoSuchMethod在使用 Apache Tika 时出错



当我使用 Apache Tika 提取 JPEG 图像的元数据时遇到以下错误

java.lang.NoSuchMethodError: com.adobe.xmp.properties.XMPPropertyInfo.getValue()Ljava/lang/Object;
at com.drew.metadata.xmp.XmpReader.extract(Unknown Source)
at com.drew.imaging.jpeg.JpegMetadataReader.extractMetadataFromJpegSegmentReader(Unknown Source)
at com.drew.imaging.jpeg.JpegMetadataReader.readMetadata(Unknown Source)
at org.apache.tika.parser.image.ImageMetadataExtractor.parseJpeg(ImageMetadataExtractor.java:91)
at org.apache.tika.parser.jpeg.JpegParser.parse(JpegParser.java:56)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120

正在使用的提卡版本:提卡 1.4

错误的原因是什么?

另请注意,API 会正确提取不包含任何 XMP 元数据的图像的元数据。此错误仅发生在具有 XMP 元数据的映像上。

Apache Tika 使用 API: 元数据提取器从图像文件中提取元数据。

造成该原因的最可能原因是,如果类路径中同时具有 tika 和元数据提取器库。元数据提取器的二进制文件可能是使用与 Tika 使用的库不同的 XMPCore 库构建的。

解决方案:从类路径中删除元数据提取器的库。

两个项目不兼容使用 XMPCore 库的问题未解决:https://code.google.com/p/metadata-extractor/issues/detail?id=55

最新更新