Caros,
Gostaria de saber como utilizar o Gson como padrão no vRaptor.
Já tentei registrar os pacotes, mas não deu certo.
Log do Console.
http://pastebin.com/5nHFFLLT
<context-param>
<param-name>br.com.caelum.vraptor.packages</param-name>
<param-value>br.com.caelum.vraptor.util.jpa,
br.com.caelum.vraptor.serialization.gson,
br.com.caelum.vraptor.deserialization.gson
</param-value>
</context-param>
Desde já, obrigado.
Existiam alguns bugs no VRaptor quanto a utilizacao do GSON.
Parece que eles foram corrigidos, mas nao tem nenhum release com essas correcoes ainda. Talvez voce possa tentar falar com o Lucas para ele gerar um Snapshot.
Voce pode fazer um “hack” para funcionar ate que tenha um relase do VRaptor.
Sobrescreva a classe DefaultDeserializers, sobrescreva o metodo deserializerFor para ele registrar o serializer do GSON. Deste modo voce esta forcando o VRaptor a usar o GSON.
@ApplicationScoped
@Component
public class DefaultDeserializers extends br.com.caelum.vraptor.deserialization.DefaultDeserializers {
@Override
public Deserializer deserializerFor(String contentType, Container container) {
register(GsonDeserialization.class);
return super.deserializerFor(contentType, container);
}
}
Obrigado Nykolas pela resposta.
Só mais uma duvida, é somente classe que eu preciso sobrescrever? Pois inserir o codigo acima e não notei diferença entre meu resultado do JSON antes e depois. Sendo que se eu serializar o mesmo objeto utilizando diretamente a biblioteca, o JSON é diferente.
Obrigado
Fiz o merge de um Pull Request que corrige isso, essa semana.
Quer que eu gere um snapshot do VRaptor com essa correção?
Lucas, se você poder fazer, eu ficaria grato.