2016-11-22 8 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; 

Я попытался исключить jackson-core из моей Maven зависимости, но это не будет делать трюк. Как я вижу, Джаспер использует 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), которое приходило с jackson 2.7.8.

JasperReports также использует jackson, но использует 2.1.4.

При десериализации объектов JSON он использовал библиотеку JasperReports (v 2.1.4), которая не имела всех необходимых функций.

Я решил это, добавив библиотеку Джексона (ядро и аннотации) в свой pom.xml.

  <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 класс присутствует в ДЖЕКСОНА-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> 

 Смежные вопросы

  • Нет связанных вопросов^_^