我想反序列化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
对我来说,即使它是一个内部类 – danieljohngomez 2018-03-09 03:24:13