Apache Tika ArchiveStreamFactory.detect ошибка - PullRequest
0 голосов
/ 18 мая 2018

Я использую java с apache tika 1.18 для конвертации некоторых файлов в TXT.Когда я пытаюсь использовать AutoDetectParser (), я получаю сообщение об ошибке:

[ОШИБКА] Произошла ошибка во время обработки ошибки, сдавайтесь!org.apache.commons.compress.archivers.ArchiveStreamFactory.detect (Ljava / IO / InputStream;) Ljava / языки / 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 / языки / String;в org.apache.cxf.service.invoker.AbstractInvoker.createFault (AbstractInvoker.java:162) в [внутренние классы] Вызывается: java.lang.NoSuchMethodError: org.apache.commons.compress.archivers.ArchiveStreamFactj.avatect (/ io / InputStream;) Ljava / lang / String;

Я находился в интернете и обнаружил, что эта ошибка связана с неверной версией commom_compress, кажется, что этот метод не существует в версиях, предшествующих 1.14 commom_compress.В моем случае версия 1.16.1.

После сборки проекта я проверил библиотеки внутри и есть только правильная версия.

Я использую IBM Liberty 18.0 ...и теперь я действительно теряюсь в отношении вариантов решения этой проблемы.

Когда я использую определенный синтаксический анализатор, такой как PDFParser (), все работает отлично!

Есть идеи?

Спасибо

1 Ответ

0 голосов
/ 20 апреля 2019

Источник проблемы:

Spark 2.x В дистрибутивы включены старые версии commons-compress, а библиотека Tika зависит от версии 1.18 библиотеки commons-compress.

Решение

Используйте аргумент --driver-class-path в вашей spark-shell или spark-submit, чтобы указать на правильную версию библиотеки commons-compress.

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

Проверьте мои подробныеответ здесь.

...