Java Apache Tika ArchiveStreamFactory.detect错误

Java Apache Tika ArchiveStreamFactory.detect错误,java,websphere-liberty,apache-tika,Java,Websphere Liberty,Apache Tika,我正在使用java和ApacheTika 1.18将一些文件转换为TXT。 当我尝试使用AutoDetectParser()时,出现了以下错误: [错误]错误处理过程中发生错误,请放弃! org.apache.commons.compress.archivers.ArchiveStreamFactory.detect(Ljava/io/InputStream;)Ljava/lang/String; [错误]SRVE0777E:应用程序类“org.apache.cxf.service.invoke

我正在使用java和ApacheTika 1.18将一些文件转换为TXT。 当我尝试使用AutoDetectParser()时,出现了以下错误:

[错误]错误处理过程中发生错误,请放弃! org.apache.commons.compress.archivers.ArchiveStreamFactory.detect(Ljava/io/InputStream;)Ljava/lang/String; [错误]SRVE0777E:应用程序类“org.apache.cxf.service.invoker.AbstractInvoker.createFault:162”引发的异常 org.apache.cxf.interceptor.Fault:org.apache.commons.compress.archivers.ArchiveStreamFactory.detect(Ljava/io/InputStream;)Ljava/lang/String; 位于org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:162) 在[内部课程] 原因:java.lang.NoSuchMethodError:org.apache.commons.compress.archivers.ArchiveStreamFactory.detect(Ljava/io/InputStream;)Ljava/lang/String

我在互联网上搜索,发现这个错误相关的错误版本的commom_compress,似乎这个方法在之前的commom_compress 1.14版本中不存在。我的版本是1.16.1

构建项目后,我检查了其中的libs,只有正确的版本

我正在使用IBM Liberty 18.0。。。现在我真的对解决这个问题的方法迷茫了

当我使用特定的解析器时,比如PDFParser(),一切都很好

有什么想法吗

谢谢

问题来源:
Spark 2.x
发行版包括commons compress的旧版本,而
Tika
库依赖于
commons compress
库的1.18版

解决方案 在spark shell或spark submit中使用--driver类路径参数指向正确版本的commons压缩库

spark-submit 
     --driver-class-path ~/.m2/repository/org/apache/commons/commons-compress/1.18/commons-compress-1.18.jar
     --class {you.main.class}
....

您使用的是什么构建工具和依赖关系管理器?在你的类路径上还有什么东西可能是错误地添加了旧的commons compress jar?我正在使用mavenCheck检查你的完整依赖树,包括可传递的依赖树,以发现旧的commons compress依赖项的来源,然后排除旧的依赖项!