【发布时间】:2016-01-22 08:57:07
【问题描述】:
我有一个提供解析和搜索功能的 Java EE 7 Web 应用程序。使用 tika-parsers 1.10 时一切正常,但一旦我升级到 1.11,我的 REST-Services 读取/写入 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。知道如何解决这个问题吗?
【问题讨论】:
-
Apache CXF 是一种 JAX-RS 实现,它不能替代 Jackson。首先通过将 CXF 库的排除项添加到 tika 依赖项来进行实验(因为我几乎可以向您保证,tika 工作不需要这些依赖项);看看这是否真的让问题消失了。
-
你是对的。我不得不排除“cxf-rt-rs-client”(其他 cxf-libraries 似乎没问题)谢谢!
标签: java json rest wildfly apache-tika