当我尝试使用Tika时,我收到了所有这些警告:
2018年2月24日下午9:24:35 org.apache.tika.config.InitializableProblemHandler $ 3 handleInitializableProblem警告:JBIG2ImageReader未加载。将忽略jbig2文件有关可选的依赖项,请参阅https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io。 TIFFImageWriter未加载。将不处理tiff文件有关可选的依赖项,请参阅https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io。 J2KImageReader未加载。 JPEG2000文件将不会被处理。有关可选的依赖项,请参阅https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io。
2018年2月24日下午9:24:35 org.apache.tika.config.InitializableProblemHandler $ 3 handleInitializableProblem警告:未加载org.xerial的sqlite-jdbc。请在类路径上提供jar来解析sqlite文件。有关正确的版本,请参阅tika-parsers / pom.xml。
我尝试添加这个(在Tika pom.xml中):
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.57</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.57</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.57</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>com.levigo.jbig2</groupId>
<artifactId>levigo-jbig2-imageio</artifactId>
<version>2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-core</artifactId>
<version>1.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-jpeg2000</artifactId>
<version>1.3.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.20.1</version>
</dependency>
但我仍然得到同样的警告。
我该如何解决这个问题?
更新1
我的依赖项添加到这里:https://github.com/apache/tika/blob/1.17/pom.xml#L164-L170
我也试过没有设置测试。它没有做任何事情。
我添加的依赖项似乎是针对PDFBox的Tika依赖。
我添加了以下依赖项,我没有任何其他警告
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.18</version>
</dependency>
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.18</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>jbig2-imageio</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>com.github.jai-imageio</groupId>
<artifactId>jai-imageio-jpeg2000</artifactId>
<version>1.3.0</version>
</dependency>
很难确切地看到发生了什么,因为你没有包含你的pom.xml的整个<dependencies>...</dependencies>
部分,但我怀疑这是由于可选的maven依赖。根据maven docs,您需要在pom中声明可选的依赖项,否则它们将不会被加载。
此外,您的所有imageio依赖项都具有<scope>test</scope>
,使它们仅在单元测试期间可用。
现在记录在错误日志中:
2019年2月19日下午3:18:44 org.apache.tika.config.InitializableProblemHandler $ 3 handleInitializableProblem警告:未加载J2KImageReader。 JPEG2000文件将不会被处理。有关可选的依赖项,请参阅https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io。
但是我更喜欢有一个Tika版本(例如,带分类器),当我只想解析文本时,它不包括OCR /图像处理,或者有一个关闭错误记录的选项(并且只记录一个错误)当实际尝试加载不支持的格式时)。
在clojure我修复它:
(System/setProperty "tika.config" "tika-config.xml")
在我的config.clj文件中。 xml只是:
<?xml version="1.0" encoding="UTF-8"?>
<properties>
<service-loader initializableProblemHandler="ignore"/>
</properties>
xml文件必须位于“resources”目录中,并且该dir必须位于您的路径中。