2017-11-22 5 views
0

私は、クラスcom.sun.rowset.JdbcRowSetImplのオブジェクトをデシリアライズするためにジャクソンを使用しています:org.codehaus.jackson.map.JsonMappingException:「matchColumn」プロパティのセッターの定義を競合: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版は私のために正常に動作します

関連する問題