Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.codehaus.jackson.map.JsonMappingException:属性的setter定义冲突;匹配列";:com.sun.rowset.JdbcRowSetImpl_Java_Json_Jdbc_Jackson - Fatal编程技术网

Java org.codehaus.jackson.map.JsonMappingException:属性的setter定义冲突;匹配列";:com.sun.rowset.JdbcRowSetImpl

Java org.codehaus.jackson.map.JsonMappingException:属性的setter定义冲突;匹配列";:com.sun.rowset.JdbcRowSetImpl,java,json,jdbc,jackson,Java,Json,Jdbc,Jackson,我正在使用Jackson反序列化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\", \

我正在使用Jackson反序列化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”属性。。。
有什么想法吗?

问题解决了:我用的是老版本的杰克逊。2.7版本适合我