Migrando de VRaptor 2 para 3 - Dúvida Ajax  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
ACDias
JavaGuru
[Avatar]

Membro desde: 11/08/2006 19:54:51
Mensagens: 219
Localização: Patos de Minas
Offline

Olá,

Estou migrando do VRaptor2 para o 3 e estou com uma dúvida sobre como criar requisições ajax. Como não achei a documentação desta parte muito intuitiva, resolvi postar aqui.
No VRaptor2 eu simplesmente anotava um método com a annotation @Remotable e realizava uma requisição para "action.metodo.ajax.logic" para realizar a requisição. O framework automaticamente parseava todos os objetos a serem ejetados para JSON.
No VRaptor3, eu realizo a requisição para qual URL?
E eu sempre terei que criar um "descritor" para a resposta JSON (/WEB-INF/jsp/action/metodo.json.jsp)? (se for desta maneira mesmo, eu preferia da maneira q era feito no 2 - era mais produtiva)

Obrigado.
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline

oi ACDias. Estamos lancando na versao 3.0.2 um suporte inicial ao JSON/XML para AJAX sem ter de criar um jsp para tal. Deve sair essa semana ainda!

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

No VRaptor3 vai ser a requisição para a URL normal, a mesma que você usaria se o resultado for uma jsp

--
Caelum
www.caelum.com.br

garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

Uma gambiarra que você pode fazer até esperar uma nova implementação é criar teu JSON dentro do método do controller e jogar para a saída como String mesmo. No meu caso eu criei um interceptor que intercepta (que redundante, hehe) todos métodos onde o retorno é um JsonObject (json.org/java), e então faço a impressão o jogo para o browser.

Silveira, outro dia você comentou na issue os planos de usar xstream. Vocês farão algo que possa gerar tanto XML como Json? Ou apenas Json?
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

garcia-jj wrote:
Silveira, outro dia você comentou na issue os planos de usar xstream. Vocês farão algo que possa gerar tanto XML como Json? Ou apenas Json?


Olá garcia,

isso já foi implementado, com o XStream por tras, está disponível no snapshot do repositório... e gera tanto xml quanto json:



o suporte ainda é básico, são serializados por padrão todos os campos primitivos do objeto (String, números, enums e datas)
e você pode incluir os campos não primitivos com o include, e excluir os primitivos com o exclude..

[]'s

This message was edited 1 time. Last update was at 11/11/2009 22:58:49

garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

Faz anos que não acompanho o xstream, mas antigamente tinha um problema quando a ele precisar de permissões no security manager para criar classloaders (isso em JVM compartilhadas, onde o security manager é muito restrito)? Ainda é necessário ter o XPP3 ou instanciar o DOM driver manualmente? Para JSON será usado o Jetinson?

Olhei hoje por cima como ficou a implementação, ficou muito bom.

Abraços, e obrigado.

This message was edited 1 time. Last update was at 11/11/2009 23:30:06

Edufa
JavaEvangelist
[Avatar]

Membro desde: 18/04/2006 10:20:03
Mensagens: 315
Localização: Curitiba, PR
Offline

Q maravilha, rs, acabei de terminar uma implementação usando xstream q tinha de exportar um monte de coisas em xml, hehehe se eu tivesse uma semana a mais de prazo teria ganho alguns dias, rs

Depois com tempo vou testar essa versão aqui, pois eu tenho algumas situações bem chatas de objetos bidirecionais q foi meio chato para tirar as referencias circulares sem contar q ficou feio, sem contar q eram entities do hibernate então tem coleções lazy para todos os lados.

exemplinho de cabeça, tem suporte ?


@garcia-jj
Eu tive problemas em usar o xstream no gae, mas era algo bem especifico, se não me engano algo relacionado ao reflection, tem ou pelo menos tinha issue no site do xstream, mas até a ultima vez q eu vi ainda não tinham previsão de suporte completo para o gae, aí eu tive de compilar a minha versão do xstream com umas coisinhas a mais.

@vraptor-team
Parabéns !

Edufa
Curitiba, PR
--
"O estado sou eu". - Luís XIV
"O estado somos nós."- Lênin
"O estado somos eu." - Lula
--
O mundo é deles mas a amazônia é nossa
O petróleo é nosso, mas o gás é deles.
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

@garcia-jj
Estamos usando o XStream normal, portanto com o XPP parser, e para JSon estamos usando o JSonHierarchicalDriver, que não precisa do jettinson...
Mas você pode estender o serializer e criar o XStream do jeito que você quiser, passando outro ReflectionProvider, outro Driver, etc...

@Edufa
esse código que você passou funciona sim (ou pelo menos deveria, talvez tenha que adicionar alguns testes para listas de elementos):

de qqer forma esse vai ser o jeito de excluir elementos... passando o caminho deles a partir do objeto principal

--
Caelum
www.caelum.com.br

Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

@Edufa
agora funciona para collections também, com algumas limitações do XStream, mas funciona... (use implementações padrão de lista (ArrayList, LinkedList, etc)

--
Caelum
www.caelum.com.br

garcia-jj
JWizard

Membro desde: 13/04/2009 22:11:50
Mensagens: 2715
Localização: Porto Alegre
Offline

lucascs wrote:Estamos usando o XStream normal, portanto com o XPP parser, e para JSon estamos usando o JSonHierarchicalDriver, que não precisa do jettinson...
Mas você pode estender o serializer e criar o XStream do jeito que você quiser, passando outro ReflectionProvider, outro Driver, etc...


Essa é uma das razões mais fortes de eu amar o vraptor. Está tudo lá, mas se você não gostar pode facilmente mudar com apenas uma simples classe Java.

Edufa wrote:Eu tive problemas em usar o xstream no gae, mas era algo bem especifico, se não me engano algo relacionado ao reflection, tem ou pelo menos tinha issue no site do xstream, mas até a ultima vez q eu vi ainda não tinham previsão de suporte completo para o gae, aí eu tive de compilar a minha versão do xstream com umas coisinhas a mais.


Eu tive problemas com o xstream há algum tempo quando precisei implantar um projeto em um cliente, onde a jvm era compartilhada, então as policies eram bem rígidas. O rolo que eu tive foi quando a permissões de classloader (não lembro exatamente), então tive que usar outro parser.

Abraços

http://github.com/garcia-jj
Não respondo dúvidas via MP. Use o fórum.
yuripodho
JavaTeenager

Membro desde: 20/08/2009 08:24:13
Mensagens: 160
Offline

Voltando um pouco o assunto, antes no vraptor 2 chamava assim:



Agora no VRaptor3 mudei para:



Entrou no método retirar e fez tudo certo, porém não voltou para o success. Como fica isso com o VRaptor3?;

cada um, cada um. Mas tem cada um...
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

toma cuidado com os caminhos relativos...

vc vai precisar colocar o contexto na url...




--
Caelum
www.caelum.com.br

yuripodho
JavaTeenager

Membro desde: 20/08/2009 08:24:13
Mensagens: 160
Offline

Não rolou, a url está certa. Entrou no meu Controller e executou tudo certo e só isso. Não voltou para o success do Json. Vi que tem o JsonOutjecter, tenho que usar isso? (só um chute)

cada um, cada um. Mas tem cada um...
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

Se vc tiver o Firefox, instala o Firebug nele e vê qual é o status que essa chamada ajax está retornando... se estiver dando 404 ou 500 não vai pro success...

ou da uma olhada no log pra ver se ele tá tentando redirecionar pra jsp do método (não deveria fazer isso)...

--
Caelum
www.caelum.com.br

yuripodho
JavaTeenager

Membro desde: 20/08/2009 08:24:13
Mensagens: 160
Offline

Está retornando 200 e não está retornando pra jsp

cada um, cada um. Mas tem cada um...
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team