2016-11-22 2 views
0

JasperReports 6.3.1을 Dropwizard 1.0.5 프로젝트와 함께 사용하고 있는데 JSON 응답을 desalinizing 할 때 Jackson과 충돌이있는 것으로 보입니다.JasperReports 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을 제외한 시도했지만 트릭을 할 수 없습니다 :

나는 얻고있다. I시피 스퍼 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에 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-core-asl이 아닌 jackson-databind를 제외 할 수 있습니까?

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