2016-11-22 88 views
0

我正在使用JasperReports 6.3.1與Dropwizard 1.0.5項目,它似乎與傑克遜時,我的JSON響應淡化時發生衝突。JasperReports傑克遜依賴衝突

我越來越:

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; 

我試圖排除從我的Maven的依賴jackson-core但它不會做的伎倆。 正如我看到,碧玉使用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> 
+0

您是否檢查完整的依賴關係樹?添加排除後有什麼變化? –

+0

當從pom.xml中排除時,依賴關係樹似乎沒有任何變化,並且我得到了相同的錯誤。當從依賴樹中排除庫時,我開始獲取_java.lang.ClassNotFoundException:com.fasterxml.jackson.annotation.JsonInclude $ Value_ –

回答

1

我解決了我的問題。 問題是,因爲我使用的是一個DropWizard應用程序(v 1.0.5),它與傑克遜2.7.8一起發佈。

JasperReports也使用傑克遜,但它使用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> 
1

Objectreader類存在於傑克遜二進制數據綁定。

你可以嘗試排除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>