анализатор tika выдает ошибку: проблема с записью данных, класс org.apache.cxf.jaxrs.ext.multipart.MultipartBody

#apache-tika

#apache-tika

Вопрос:

После этого мы обновляемся до java 11, наш анализатор tika 0.7 перестает работать, ошибка синтаксического анализа: ** Не удалось добавить расширения в 000000001_0 java.lang.Исключение IllegalArgumentException: org.apache.tika.parser.Анализатор не является классом ImageIO SPI в java.desktop /javax.imageio.spi.ServiceRegistry.checkClassAllowed(ServiceRegistry.java:722) в java.desktop /javax.imageio.spi.ServiceRegistry.Поиск поставщиков (ServiceRegistry.java: 207) **

В Java 8 работает успешно

Я обновил версию до 1.24.1 (с 1.19 она должна поддерживать java 11) и все необходимые jar-файлы как cfx*

    127509 Aug 26 13:52 javax.ws.rs-api-2.1.jar
   346445 Aug 26 14:23 cxf-rt-frontend-jaxws-3.4.0.jar
   382008 Aug 26 14:24 cxf-rt-transports-http-3.4.0.jar
  1414830 Aug 26 14:24 cxf-core-3.4.0.jar
   696050 Aug 26 14:27 cxf-rt-frontend-jaxrs-3.4.0.jar
   187625 Aug 26 14:30 cxf-rt-rs-client-3.4.0.jar
    59386 Aug 26 14:32 cxf-rt-rs-service-description-3.4.0.jar
   365552 Aug 26 19:57 commons-compress-1.8.1.jar
   276413 Aug 27 10:29 commons-io-2.7.jar
    53820 Aug 27 10:48 commons-cli-1.4.jar
   284220 Aug 27 10:53 commons-lang-2.6.jar
   219146 Aug 27 10:55 javax.mail-api-1.6.2.jar
 47929542 Aug 27 11:59 tika-bundle-1.24.1.jar
   708157 Aug 27 11:59 tika-core-1.24.1.jar
  1336431 Aug 27 11:59 tika-parsers-1.24.1.jar
    39881 Aug 27 12:00 tika-translate-1.24.1.jar
    18069 Aug 27 12:01 tika-serialization-1.24.1.jar
    35100 Aug 27 12:01 tika-xmp-1.24.1.jar
  

но теперь я получаю ту же ошибку, что и:

 Caused by: javax.ws.rs.ProcessingException: Problem with writing the data, class org.apache.cxf.jaxrs.ext.multipart.MultipartBody, ContentType: multipart/form-data
at org.apache.cxf.jaxrs.client.AbstractClient.reportMessageHandlerProblem(AbstractClient.java:846)
at org.apache.cxf.jaxrs.client.AbstractClient.writeBody(AbstractClient.java:529)
at org.apache.cxf.jaxrs.client.WebClient$BodyWriter.doWriteBody(WebClient.java:1223)
at org.apache.cxf.jaxrs.client.AbstractClient$AbstractBodyWriter.handleMessage(AbstractClient.java:1222)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.jaxrs.client.AbstractClient.doRunInterceptorChain(AbstractClient.java:703)
at org.apache.cxf.jaxrs.client.WebClient.doChainedInvocation(WebClient.java:1086)
at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:932)
at org.apache.cxf.jaxrs.client.WebClient.doInvoke(WebClient.java:901)
at org.apache.cxf.jaxrs.client.WebClient.invoke(WebClient.java:364)
at org.apache.cxf.jaxrs.client.WebClient.post(WebClient.java:373)
at org.apache.tika.parser.journal.GrobidRESTParser.parse(GrobidRESTParser.java:81)
at org.apache.tika.parser.journal.JournalParser.parse(JournalParser.java:60)
at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:280)
... 50 more
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242
  

Наш код для анализа онлайн-документов:

         try {
            ContentHandler handler = new BodyContentHandler(-1);
            Metadata metadata = new Metadata();
            Parser parser = new AutoDetectParser();
            parser.parse(in, handler, metadata, new ParseContext());

            return handler.toString();

        } catch (IOException e) {
            logger.warn("Problem in getting the content of " filePath);
            throw new RuntimeException("Problem in getting the content of " filePath, e);
        }
        catch (SAXException e) {
            logger.warn("Problem in parsing the content of " filePath);
            throw new RuntimeException("Problem in parsing the content of " filePath, e);
        }
        catch (TikaException e) {
            logger.warn("Problem in parsing the content of " filePath);
            throw new RuntimeException("Problem in parsing the content of " filePath, e);
        }
  

Комментарии:

1. Используете ли вы Grobid?

2. Я использую AutoDetectParser , но он запускает JournalParser. Я нигде не определяю Grobid. Мне нужна дополнительная конфигурация? или я могу сказать, что не использую его?

3. У вас есть пользовательский файл конфигурации Tika? Похоже, что конфигурация по умолчанию — это не все, я думаю, у вас могло быть (случайно?) включен grobid

4. Я запускаюсь с Tika 0.7, файла конфигурации нет. Теперь я пытаюсь понять, как настроить его так, чтобы процесс веб-вызова не выполнялся,,