0

PDFファイルのコンテンツインデックス作成にPDFBoxとtikaを使用しています。すべてがPDFFBox 1.8で正常に動作していますが、PDFBoxを2.0.2に更新すると、以下のエラーが表示されます:

(Thread-62 (HornetQ-client-global-threads-2071379348)) Exception while creating solr doucment for content::Failed to close temporary resources: org.apache.tika.exception.TikaException: Failed to close temporary resources
at org.apache.tika.io.TemporaryResources.dispose(TemporaryResources.java:152)
at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:149)
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)

at org.hornetq.jms.client.JMSMessageListenerWrapper.onMessage(JMSMessageListenerWrapper.java:91)
at org.hornetq.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:983)
at org.hornetq.core.client.impl.ClientConsumerImpl.access$400(ClientConsumerImpl.java:48)
at org.hornetq.core.client.impl.ClientConsumerImpl$Runner.run(ClientConsumerImpl.java:1113)
at org.hornetq.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:100)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Could not delete temporary file C:\Users\FILESE~1\AppData\Local\Temp\apache-tika-7918716906396425097.tmp
at org.apache.tika.io.TemporaryResources$1.close(TemporaryResources.java:70)
at org.apache.tika.io.TemporaryResources.close(TemporaryResources.java:121)
at org.apache.tika.io.TemporaryResources.dispose(TemporaryResources.java:150)
... 18 more

この問題を解決するのを手伝ってもらえますか?

このため、PDFBox を 2.0.2 に更新しました

私のgradleの依存関係は次のとおりです。

compile "org.apache.poi:poi:3.8"
compile "org.apache.poi:poi-ooxml:3.8"
compile "org.apache.poi:poi-scratchpad:3.8"
compile "org.apache.pdfbox:pdfbox:2.0.2"

compile 'org.apache.tika:tika-parsers:1.5'
compile 'org.apache.tika:tika-core:1.5'

ここでは tika 1.5 を使用しており、このバージョンは pdfbox 2.0.3 をサポートしています。ここで見ることができます

4

1 に答える 1

3

Tika バージョン 1.5 を使用し、

Tika 1.5 は pdfbox 2.0.3 をサポートします

Tika 1.5 が 2014 年 2 月にリリースされたのが PDFBox バージョン 2.x よりずっと前であり、PDFBox 2.0.0 が複数の点で以前の 1.8.x リリースと互換性がないことを考えると、これは非常に信じがたいことです。

Apache Tika Parsers » 1.5の mvnrepository ページを指して、主張を裏付けます。このページには以下が表示されます。

スクリーンショット

しかし、これはすべて、Tika 1.5 が PDFBox 1.8.4 に依存しており、PDFBox バージョン 2.0.3 が存在することを意味します。これは、Tika 1.5 が PDFBox 2.0.3 で正しく機能するという意味ではありません。

pom ファイルを見ると、次のように表示されます。

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>1.8.4</version>
</dependency>

したがって、Tika 1.5 は PDFBox 1.8.4 で開発およびコンパイルされています。PDFBox のバージョン番号付けが適切であれば、Tika 1.5 が x == 4 以降の PDFBox 1.8.x で適切に動作することを期待できます。

しかし、PDFBox の開発は、2.0.0 リリースで PDFBox アーキテクチャをオーバーホールする機会を得ました。したがって、ほとんどの場合、1.x PDFBox バージョンに依存するプログラムは、変更なしでは PDFBox 2.x で機能しません。

TIKA の問題TIKA-1959によると、Tika はバージョン 1.13 以降の PDFBox 2.0.1 で実行できます。


要するに、PDFBox 2.0.x で Tika を使用するには、少なくともバージョン 1.13 が必要です。

于 2016-09-21T10:31:33.760 に答える