首页 文章

JsonMappingException:找不到类型[simple type,class com.fasterxml.jackson.databind.node.ObjectNode]的合适构造函数

提问于
浏览
1

我已阅读JSONMappingException for External Object,_ JSONMappingException for Class但找不到 ObjectNode 类的解决方案 .

通过阅读JSONMappingException for External Object我明白你必须在mapper中注册Object但是我没有创建任何ObjectMapper类,因为我正在调用web服务

mapper.registerModule(new GeoModule());

我试图调用包含 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)实例变量的My POJO( ReportQueryData.java )的Web服务 .

ReportQueryData.java

import com.fasterxml.jackson.databind.node.ObjectNode;

public class ReportQueryData {
    private ObjectNode parentsData;

    public ObjectNode getParentsData() {
        return parentsData;
    }

    public void setParentsData(ObjectNode parentsData) {
        this.parentsData = parentsData;
    }
}

现在我在请求中调用包含ReportQueryData的Web服务,我面临下面的异常

org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type [simple type, class com.fasterxml.jackson.databind.node.ObjectNode]: can not instantiate from JSON object (need to add/enable type information?)
[INFO] [talledLocalContainer]  at [Source: org.apache.catalina.connector.CoyoteInputStream@3da45801; line: 1, column: 155] (through reference chain: com.atlassian.qtm.model.ReportQueryData["parentsData"])
[INFO] [talledLocalContainer]   at org.codehaus.jackson.map.JsonMappingException.from(JsonMappingException.java:163)
[INFO] [talledLocalContainer]   at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObjectUsingNonDefault(BeanDeserializer.java:740)
[INFO] [talledLocalContainer]   at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:683)

1 回答

  • 0

    您必须为此类编写默认构造函数,如下所示

    public ReportQueryData (){
    
    }
    

    Edit: :尝试将该课程包装在您的课程中并使用您的课程 .

    class A{
    
        A(String s){
    
        }
    }
    
    class B extends A{
    
        B(){
            super("str");
        }
    }
    

相关问题