当我尝试使用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依赖。
答案 0 :(得分:2)
我添加了以下依赖项,但没有其他警告
<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>
答案 1 :(得分:1)
在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”目录中,并且该目录必须位于您的路径中。
答案 2 :(得分:0)
很难确切地看到发生了什么,因为你没有包含你的pom.xml的整个<scope>test</scope>
部分,但我怀疑这是由于可选的maven依赖。根据{{3}},您需要在pom中声明可选的依赖项,否则它们将不会被加载。
此外,您的所有imageio依赖项都具有<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<div class="container">
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Dropdown Example
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a href="#">orange</a></li>
<li><a href="#">bnana</a></li>
<li><a href="#">lemon</a></li>
<li><a href="#">apple</a></li>
</ul>
</div>
</div>
,使它们仅在单元测试期间可用。
答案 3 :(得分:0)
现在已将其记录在错误日志中:
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 /图像处理的版本,或者可以选择关闭错误记录(仅实际尝试加载不受支持的格式时记录错误。