使用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元数据的图像发生此错误。
答案 0 :(得分:4)
Apache Tika使用API:metadata-extractor从图像文件中提取元数据。
原因最可能的原因是,如果在类路径中同时包含tika和元数据提取程序库。元数据提取器的二进制文件可能是使用不同版本的XMPCore库构建的,与Tika使用的库相比。
解决方案:从类路径中删除metadata-extractor的库。
两个项目不兼容使用XMPCore库的问题未解决: https://code.google.com/p/metadata-extractor/issues/detail?id=55