我有一个提供解析和搜索功能的 Java EE 7 Web 应用程序。使用 tika-parsers 1.10 时,一切正常,但一旦我升级到 1.11,我的 REST 服务就无法读取/写入 json。
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.11</version>
</dependency>
错误消息:
javax.ws.rs.client.ResponseProcessingException: No message body reader has been found for class de.drivve.km.idd.IddAccount, ContentType: application/json
at org.apache.cxf.jaxrs.impl.ResponseImpl.reportMessageHandlerProblem(ResponseImpl.java:433)
at org.apache.cxf.jaxrs.impl.ResponseImpl.doReadEntity(ResponseImpl.java:384)
at org.apache.cxf.jaxrs.impl.ResponseImpl.readEntity(ResponseImpl.java:319)
我在 Wildfly 10 上运行,有一些其他可能值得注意的依赖项:
...
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson-provider</artifactId>
<scope>provided</scope>
</dependency>
...
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.0</version>
</dependency>
...
似乎使用apache-cxf(tika-parsers需要)而不是jackson来读取/写入json。知道如何解决这个问题吗?
最佳答案
金比正确地指出了这一点。我必须添加排除项到 tika-parser-dependency:
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-parsers</artifactId>
<version>1.11</version>
<exclusions>
<exclusion>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-rs-client</artifactId>
</exclusion>
</exclusions>
</dependency>
现在我的REST-Services 再次工作以及我的大部分 tika 解析测试(例如 docx、pdf、ppt、html)。 但现在,当尝试解析 odt 文件 tika 失败时,出现以下异常:
java.lang.NoSuchMethodError: org.apache.commons.io.IOUtils.toString(Ljava/io/InputStream;Ljava/nio/charset/Charset;)Ljava/lang/String;
at org.apache.tika.parser.pkg.ZipContainerDetector.detectOpenDocument(ZipContainerDetector.java:192)
at org.apache.tika.parser.pkg.ZipContainerDetector.detectZipFormat(ZipContainerDetector.java:145)
at org.apache.tika.parser.pkg.ZipContainerDetector.detect(ZipContainerDetector.java:90)
at org.apache.tika.detect.CompositeDetector.detect(CompositeDetector.java:77)
at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:112)
...
关于Java EE 7 Webapp - 将 tika-parsers 升级到 1.11 后 REST-Services(json) 出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34942596/