JasperReports Jackson 依赖冲突

JasperReports Jackson dependency conflict

我将 JasperReports 6.3.1 与 Dropwizard 1.0.5 项目一起使用,在淡化我的 JSON 响应时它似乎与 Jackson 有冲突。

我得到:

Stacktrace:
    at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:575)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:462)
....
Caused by: org.apache.jasper.JasperException

Stacktrace:
    at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:575)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)
...
Caused by: org.apache.jasper.el.JspELException
...
Caused by: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectReader.getConfig()Lcom/fasterxml/jackson/databind/DeserializationConfig;

我尝试将 jackson-core 从我的 Maven 依赖项中排除,但它不起作用。 如我所见,Jasper 使用 2.1.4 而 Dropwizard 使用 2.7.8

<dependency>
      <groupId>net.sf.jasperreports</groupId>
      <artifactId>jasperreports</artifactId>
      <version>6.3.1</version>
      <exclusions>
        <exclusion>
          <artifactId>jackson-core-asl</artifactId>
          <groupId>org.codehaus.jackson</groupId>
        </exclusion>
      </exclusions>
    </dependency>
  </dependencies>

Objectreader class 存在于 jackson-databind 二进制文件中。

您能否尝试排除 jackson-databind 而不是 jackson-core-asl。

    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>6.3.1</version>
        <exclusions>
            <exclusion>
                <artifactId>jackson-databind</artifactId>
                <groupId>com.fasterxml.jackson.core</groupId>
            </exclusion>
        </exclusions>
    </dependency>

我解决了我的问题。 问题是,当我使用 Dropwizard 应用程序(v 1.0.5)时,它随 jackson 2.7.8 一起提供。

JasperReports 也在使用 jackson,但它使用 2.1.4。

反序列化 JSON 个对象时,它使用的是 JasperReports 的库 (v 2.1.4),它不具备所有需要的功能。

我通过在 pom.xml 中添加 jackson 库(核心和注释)解决了这个问题。

         <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.7.8</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.7.8</version>
        </dependency>