| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/09/2011 16:06:58
|
marciobarroso
Virtual Machine Man
![[Avatar]](/images/avatar/6828f61cee49c7a4da0f9c1d3e03b857.jpg)
Membro desde: 13/05/2005 23:17:13
Mensagens: 508
Localização: Barueri / SP / BR
Offline
|
Estou modelando alguns serviços utilizando VRaptor como controlador MVC.
Todas os resultados dos serviços serão JSON ou XML.
Eu modelei um objeto para ser trafegado para os retornos.
Basicamente seria algo assim:
Criei uma classe abstrata que já tem alguns métodos genéricos. Todos estes métodos tem uma ação default que seria informar se foi executado com sucesso ou com erro e uma mensagem.
Existem outros métodos que além destas duas mensagens ( status de execução e mensagem ), eles retornam também um objeto.
Por exemplo:
Um método de list, retorna um objeto do tipo List<?>.
Um método get, retorna um objeto complexo qualquer.
Então eu criei uma classe para ser meu retorno default:
então, hora eu seto somente o type ( SUCCESS ou ERROR ) e o message, hora eu seto além destes dois campos, o campo object com o objeto carregado pela classe de business ou então uma lista.
Na hora de renderizar a tela, só esta sendo carregado o type e a message. O objeto complexo não esta sendo adicionado ao XML ou JSON.
eu criei um método que executo depois de cada execução de métodos desta classe abstrata:
Alguma sugestão do que devo fazer para resolver este problema??
[]'s
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 15/09/2011 17:58:53
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
o vraptor só serializa os atributos simples, por padrão... se vc quiser incluir o objeto vc precisa dar um .include("object") antes do .serialize()
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2011 07:43:27
|
marciobarroso
Virtual Machine Man
![[Avatar]](/images/avatar/6828f61cee49c7a4da0f9c1d3e03b857.jpg)
Membro desde: 13/05/2005 23:17:13
Mensagens: 508
Localização: Barueri / SP / BR
Offline
|
Lucas,
Já tentei fazer isso ... acho que estou tendo problemas porque estou usando tipos genéricos nesta classe ... Eu lí algo que você escreveu que diz que o VRaptor precisa conhecer a implementação para conseguir serializar.
É isso mesmo??
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2011 08:00:50
|
marciobarroso
Virtual Machine Man
![[Avatar]](/images/avatar/6828f61cee49c7a4da0f9c1d3e03b857.jpg)
Membro desde: 13/05/2005 23:17:13
Mensagens: 508
Localização: Barueri / SP / BR
Offline
|
Lucas,
Tentei novamente fazer como sugeriu.
A classe ficou assim:
Após as execuções estou fazendo o seguinte:
e esta gerando esta exceção:
Pela exceção dá para ter idéia que o problema é mesmo o que eu falei ... o VRaptor precisa conhecer a implementação para serializar, ou em outras palavras, com o generics não vai rolar.
Tem alguma outra forma de implementar isso? Talvez criando uma implementação custom do Serialization??
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/09/2011 09:47:03
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
acho que isso já foi corrigido... tenta usar esse snapshot:
https://oss.sonatype.org/content/repositories/snapshots/br/com/caelum/vraptor/3.4.0-SNAPSHOT/vraptor-3.4.0-20110915.225054-8.jar
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/09/2011 08:09:25
|
marciobarroso
Virtual Machine Man
![[Avatar]](/images/avatar/6828f61cee49c7a4da0f9c1d3e03b857.jpg)
Membro desde: 13/05/2005 23:17:13
Mensagens: 508
Localização: Barueri / SP / BR
Offline
|
Lucas,
Sabe se existe em algum lugar um POM com as dependências do VRaptor 3.4.0-SNAPSHOT ???
Coloquei esta versão, mas esta dando problema nas dependências ... esta faltando um monte de dependências que não tinha nas versões anteriores.
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/09/2011 10:12:53
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
quais dependências estão faltando, marcio?
https://github.com/caelum/vraptor/blob/master/pom.xml
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/09/2011 12:43:02
|
marciobarroso
Virtual Machine Man
![[Avatar]](/images/avatar/6828f61cee49c7a4da0f9c1d3e03b857.jpg)
Membro desde: 13/05/2005 23:17:13
Mensagens: 508
Localização: Barueri / SP / BR
Offline
|
Lucas,
Utilizando o POM que você me passou, consegui acertar todas as dependências do projeto, no entanto, a exceção ainda persiste.
Você consegue imaginar outra forma para contornar este problema?
Será que eu não vou conseguir utilizar este objeto genérico para dar o retorno dos meus serviços REST?!?
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/09/2011 16:03:19
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
marcio, quais dependencias estavam faltando?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2011 12:51:42
|
marciobarroso
Virtual Machine Man
![[Avatar]](/images/avatar/6828f61cee49c7a4da0f9c1d3e03b857.jpg)
Membro desde: 13/05/2005 23:17:13
Mensagens: 508
Localização: Barueri / SP / BR
Offline
|
Estavam faltando a scannotation e guava ( google.collection )
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2011 16:10:43
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
não quer corrigir lá no VRaptor e mandar um pull request por favor?
ou o pom mais novo já está certo?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 22/09/2011 16:12:51
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
em todo caso, essa exception já deveria estar corrigida no último snapshot do vraptor
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/09/2011 12:48:14
|
marciobarroso
Virtual Machine Man
![[Avatar]](/images/avatar/6828f61cee49c7a4da0f9c1d3e03b857.jpg)
Membro desde: 13/05/2005 23:17:13
Mensagens: 508
Localização: Barueri / SP / BR
Offline
|
Lucas Cavalcanti wrote:não quer corrigir lá no VRaptor e mandar um pull request por favor?
ou o pom mais novo já está certo?
O pom que você me passou já tem estas dependências =)
Sobre a exceção, eu baixei o snapshot que você me passou ... e o problema ainda persiste. Acabei removendo o generics do meu objeto para contornar o problema.
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/09/2011 12:49:50
|
Lucas Cavalcanti
GUJ Hacker
![[Avatar]](/images/avatar/5f6780632f5d27dd0cded5fc9361169e.jpg)
Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline
|
qual é o caso em que deu problemas? posta aí as classes (com generics) que vc mandou serializar por favor?
|
--
Caelum
www.caelum.com.br
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/09/2011 08:27:12
|
marciobarroso
Virtual Machine Man
![[Avatar]](/images/avatar/6828f61cee49c7a4da0f9c1d3e03b857.jpg)
Membro desde: 13/05/2005 23:17:13
Mensagens: 508
Localização: Barueri / SP / BR
Offline
|
a classe é essa:
Eu fiz uma classe abstrata genérica que trata minhas respostas e sempre coloca uma instancia deste objeto como resultado JSON ou XML. Só que com o generics não funciona.
[]'s
|
|
|
 |
|
|