我正在处理的项目有一个使用Tika的WebUI(WAR),以及另一个也使用Tika的应用程序(JAR)。 两者具有相同的代码:
Tika t = new Tika();
String detectedType = t.detect(fileName);
每个返回一个不同的结果。
上的Tika故障排除技巧我在WebUI中看到
Tika version: Apache Tika 1.22
Tika detector type org.apache.tika.detect.OverrideDetector
Tika detector type org.apache.tika.parser.microsoft.POIFSContainerDetector
Tika detector type org.apache.tika.parser.pkg.ZipContainerDetector
Tika detector type org.gagravarr.tika.OggDetector
Tika detector type org.apache.tika.mime.MimeTypes
我在应用程序中看到
Tika version: Apache Tika 1.22
Tika detector type org.apache.tika.mime.MimeTypes
我是Java WAR和JAR的新手,但是该项目似乎具有正确的依赖关系, 但我不知道为什么这两个会得到不同的默认检测器列表。
我应该在哪里找到这两种使用Tika的区别?
答案 0 :(得分:0)
我找到了问题的答案。
原谅我如果我弄错了一些Apache Storm术语,我是Storm的新手。
部分问题是我遗漏了关键细节,有问题的JAR正在作为Storm工作者的一部分动态加载。
Storm拓扑JAR仅包含对tika-core的依赖,tika解析器被无意中遗弃了。
为解决该问题,我从拓扑JAR中删除了对Tika的所有依赖关系(它们是不必要的)。现在,当加载有问题的JAR时,同时依赖于tika-core和tika-parsers,一切都按预期运行。