[RESTFULIE] de-serialização  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
galmeida
Thread.start()
[Avatar]

Membro desde: 03/11/2004 17:44:16
Mensagens: 28
Offline

Estou fazendo alguns testes com o Restfulie, se tudo correr bem ele será utilizado em alguns produtos nossos, bom no meio de um dos testes encontrei o seguinte problema, que provavelmente é um problema (velho conhecido) "herdado" do XStream?

se o xstream encontra uma propriedade no xml que não está presente na classe representada por ele lança uma exception (ver http://jira.codehaus.org/browse/XSTR-30)

dessa forma, se o serviço inclui propriedades novas no recurso, o client quebra até que inclua tbm as mesma propriedades? na minha opinião isso deixa os clientes muito frágeis.

o mesmo comportamento é apresentado pelo restfulie, a exception lançada é: com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: No such field

Gostaria de ouvir a opinião de vocês a respeito de como tratar esse "problema"

PS: sei que esse não é um problema do restfulie e sim do XStream, mas o ticket no jira dos caras é de 2004 e até agora nada foi feito?..

galmeida
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

tinha um fix famoso pra esse bug...
http://initbinder.com/articles/how-to-tell-xstream-to-not-unmarshall-xml-fields.html

--
Caelum
www.caelum.com.br

galmeida
Thread.start()
[Avatar]

Membro desde: 03/11/2004 17:44:16
Mensagens: 28
Offline

valeu, Lucas...

teste no XStream e funcionou perfeitamente, mas agora sobrou uma dúvida... como trocar a instância do XStream que o restfulie usa?

This message was edited 1 time. Last update was at 02/02/2012 06:17:44


galmeida
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

o lugar onde vc consegue fazer isso seria no: https://github.com/caelum/restfulie-java/blob/master/client/src/main/java/br/com/caelum/restfulie/mediatype/XStreamHelper.java

o problema é que ele não está mto estensível para substituir o xstream, vc pode usar o xstream que ele cria pra configurar mais coisas...

o que vc pode fazer por enquanto é copiar essas duas classes pro seu projeto:
https://github.com/caelum/restfulie-java/blob/master/client/src/main/java/br/com/caelum/restfulie/mediatype/XmlMediaType.java
https://github.com/caelum/restfulie-java/blob/master/client/src/main/java/br/com/caelum/restfulie/mediatype/XStreamHelper.java

alterar o helper do seu projeto, e fazer um :


--
Caelum
www.caelum.com.br

 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team