2017-11-22 15 views
0

:org.codehaus.jackson.map.JsonMappingException "matchColumn"속성에 대한 충돌하는 세터 정의 : com.sun.rowset.JdbcRowSetImpl 내가 클래스 com.sun.rowset.JdbcRowSetImpl의 객체 직렬화 잭슨을 사용하고

public class Main { 

static String jsonInput = "{\"@class\":\"com.sun.rowset.JdbcRowSetImpl\", \"dataSourceName\":\"ldap://localhost:10389/ldap://localhost:10389/cn=apartment16,dc=example,dc=com\", \"autoCommit\":true}"; 


     public static void main(String[] args) throws Exception{ 
      ObjectMapper mapper = new ObjectMapper(); 
      mapper.enableDefaultTyping(); 
      Object o = mapper.readValue(jsonInput, JdbcRowSetImpl.class); 
      System.out.println(o.getClass()); 
     } 
    } 

하지만 다음과 같은 예외를 받고 있어요 :

Exception in thread "main" org.codehaus.jackson.map.JsonMappingException: Conflicting setter definitions for property "matchColumn": com.sun.rowset.JdbcRowSetImpl#setMatchColumn(1 params) vs com.sun.rowset.JdbcRowSetImpl#setMatchColumn(1 params) 
at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:346) 
at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCacheValueDeserializer(StdDeserializerProvider.java:321) 
at org.codehaus.jackson.map.deser.StdDeserializerProvider.findValueDeserializer(StdDeserializerProvider.java:167) 
at org.codehaus.jackson.map.deser.StdDeserializerProvider.findTypedValueDeserializer(StdDeserializerProvider.java:188) 
at org.codehaus.jackson.map.ObjectMapper._findRootDeserializer(ObjectMapper.java:2820) 
at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2719) 
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1854) 
at test.Main.main(Main.java:25) 
Caused by: java.lang.IllegalArgumentException: Conflicting setter definitions for property "matchColumn": com.sun.rowset.JdbcRowSetImpl#setMatchColumn(1 params) vs com.sun.rowset.JdbcRowSetImpl#setMatchColumn(1 params) 
at org.codehaus.jackson.map.introspect.POJOPropertyBuilder.getSetter(POJOPropertyBuilder.java:198) 
at org.codehaus.jackson.map.deser.BeanDeserializerFactory.addBeanProps(BeanDeserializerFactory.java:1056) 
at org.codehaus.jackson.map.deser.BeanDeserializerFactory.buildBeanDeserializer(BeanDeserializerFactory.java:654) 
at org.codehaus.jackson.map.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:583) 
at org.codehaus.jackson.map.deser.StdDeserializerProvider._createDeserializer(StdDeserializerProvider.java:432) 
at org.codehaus.jackson.map.deser.StdDeserializerProvider._createAndCache2(StdDeserializerProvider.java:341) 
... 7 more 

내가 잭슨이 필드 "matchColumn"에 사용해야 세터 알고하지 않기 때문에 그것의 생각 (그 중 4있다). 하지만 JSON에서 "matchColumn"속성을 선언하지 않기 때문에 해당 필드를 설정하려고하는 이유가 무엇인지 알 수 없습니다. 아이디어가 있습니까?

답변

0

문제 해결 : 이전 버전의 잭슨을 사용하고있었습니다. 2.7 버전은 나를 위해 잘 작동