@JsonCreator e mixin via Módulo não funciona para Classe de Terceiros
Estou tentando desserializar java.net.HttpCookie que não tem um construtor no-arg padrão e estou obtendo:org.codehaus.jackson.map.JsonMappingException: nenhum construtor adequado encontrado para o tipo [tipo simples, classe java.net.HttpCookie]: não é possível instanciar a partir do objeto JSON (é necessário adicionar / ativar informações de tipo?) em [Fonte: java. io.StringReader@5a395674; linha: 1, coluna: 35
Isto é com jackson-mapper-asl v 1.9.13
eu encontreiClasse de terceiros de Jackson sem construtor padrão e tentou usar sua solução via getDeserializationConfig e usando o módulo Apresento o código do módulo abaixo.
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");
}
}
No construtor do terminal do servidor, tenho o seguinte:
public ServerEndpointConstructor() {
mapper = new ObjectMapper();
mapper.registerModule(new MyModule());
}
Eu vejo que "Definir anotação de mixin" é registrada antes da exceção de desserialização nos meus logs. Eu não vejo "Mixin chamado!" sempre (embora não tenha certeza de que o código dentro do construtor mixin seria chamado). Alguém pode me mostrar o erro do meu jeito? Preciso anotar todos os campos dentro de java.net.HttpCookie?
http://docs.oracle.com/javase/7/docs/api/java/net/HttpCookie.html