2014-09-03 34 views
1

我想反序列化java.net.HttpCookie它没有默认的无参数构造函数,并得到: org.codehaus.jackson.map。 JsonMappingException:找不到类型为[简单类型,类java.net.HttpCookie]的合适构造函数:无法从JSON对象实例化(需要添加/启用类型信息?行:1,柱:35@JsonCreator和mixin通过模块不工作的第三方类

这是杰克逊映射器-ASL v 1.9.13

我发现Jackson 3rd Party Class With No Default Constructor并企图通过两个getDeserializationConfig以及使用模块来使用他们的解决方案。我介绍下面的模块代码。

abstract class HttpCookieMixIn { 
    @JsonCreator 
    public HttpCookieMixIn(@JsonProperty("name") String name, @JsonProperty("value") String value) { 
     logger.info("Mixin called!"); 
    } 
} 

public class MyModule extends SimpleModule { 
    public MyModule() { 
     super("ModuleName", new Version(0,0,1,null)); 
    } 

    @Override 
    public void setupModule(SetupContext context) { 
     context.setMixInAnnotations(java.net.HttpCookie.class, HttpCookieMixIn.class); 
     logger.info("Set mixin annotation"); 
    } 
} 

在服务器端点的构造,我有以下:

public ServerEndpointConstructor() { 
    mapper = new ObjectMapper(); 
    mapper.registerModule(new MyModule()); 
} 

我见“设定混入注释”之前我在日志中的反序列化的异常记录。我没有看到“Mixin叫!” (尽管我不确定mixin构造函数中的代码是否会被调用)。有人能以我的方式向我展示错误吗?我是否需要注释java.net.HttpCookie中的所有字段?

http://docs.oracle.com/javase/7/docs/api/java/net/HttpCookie.html

回答