Gson + vRaptor Erro

6 respostas
S

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.

6 Respostas

Nykolas_Lima

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);
	}
}
S

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

Lucas_Cavalcanti

Fiz o merge de um Pull Request que corrige isso, essa semana.

Quer que eu gere um snapshot do VRaptor com essa correção?

S

Lucas, se você poder fazer, eu ficaria grato.

Lucas_Cavalcanti

Ta lá:

https://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.5.2-SNAPSHOT/vraptor-3.5.2-20130709.125703-4.jar

se vc usa maven, dá pra registrar esse repositório de snapshots.

S

Obrigado Lucas.

Criado 7 de julho de 2013
Ultima resposta 13 de jul. de 2013
Respostas 6
Participantes 3