3

使用 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

正在使用的 Tika 版本:Tika 1.4

错误的原因是什么?

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

4

1 回答 1

4

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

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

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

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

于 2013-09-19T01:04:15.390 回答