Java EE 7 Webapp - 将 tika-parsers 升级到 1.11 后 REST-Services(json) 出现问题

Java EE 7 Webapp - Problems with REST-Services(json) after upgrading tika-parsers to 1.11

我有一个 Java EE 7 WebApplication 提供解析和搜索功能。在使用 tika-parsers 1.10 时,一切正常,但是一旦我升级到 1.11,我的 REST 服务就会因 reading/writing [=30] 而失败=].

    <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>
    ...

read/writejson 似乎使用了 apache-cxf(tika-parsers 需要)而不是 jackson。知道如何解决这个问题吗?

金比指出正确。我不得不 添加排除项 到 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-file 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)
...