Vraptor 3 + JSON  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
ViniciusNaka
JavaChild
[Avatar]

Membro desde: 19/01/2009 11:06:51
Mensagens: 101
Offline

Boa tarde galera...

estou com o seguinte erro ao tentar serializar um objeto...

Caused by: java.lang.IllegalArgumentException: Field path colaborador doesn't exist
at br.com.caelum.vraptor.serialization.xstream.XStreamSerializer.include(XStreamSerializer.java:207)
at voxage.com.br.controllers.PontuacaoController.listarFuncConsolidado(PontuacaoController.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:61)
... 42 more

minha classe PontuacaoFunc para auxilio...

desde já agradeço a ajuda.

abs
[Email] [MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

só pra entender o erro, a lista que vai ser serializada está nula? vazia?

This message was edited 1 time. Last update was at 10/05/2011 16:10:03


--
Caelum
www.caelum.com.br

mascjunior
HelloWorld
[Avatar]

Membro desde: 24/08/2007 12:17:15
Mensagens: 10
Offline

Boa Noite Vinicius,

conseguiu resolver o seu erro?

estou com o mesmo problema.

att,
ViniciusNaka
JavaChild
[Avatar]

Membro desde: 19/01/2009 11:06:51
Mensagens: 101
Offline

E ai pessoal, eu cometi uma gafe hehe... me desculpem!

mascjunior, no meu caso eu revi debugando que no meu DAO estava retornando atributos específicos e nao o objeto...

por isso q constava aquele erro hehe

vc conseguiu resolver?

abs
[Email] [MSN]
gabriel.mancini
Debugger

Membro desde: 07/06/2010 11:22:07
Mensagens: 54
Offline

cara o meu aki funciona bem



agora o meu problema esta sendo o contrario
estou tentando enviar via:
AJAX
usando um POST
um dado em JSON
minha action eh executada mais não eh feito a deserialização

alguem tem alguma ideia?

eu vi uma thred aki no guj que fala algo assim
http://www.guj.com.br/java/197235-vraptor3-serializedeserialize-listas-com-xstream

mais não entendi onde eu coloco o codigo de deserializacao
eu tenho um

public class CustomJSONSerialization extends XStreamJSONSerialization

teria algo para deserializar json?

This message was edited 1 time. Last update was at 18/05/2011 18:17:45

[MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

que erro dá?

--
Caelum
www.caelum.com.br

gabriel.mancini
Debugger

Membro desde: 07/06/2010 11:22:07
Mensagens: 54
Offline

então tentei realizar o PUT (ou POST, ja tentei os 2), e a execução ate chama a action mais o parametro chega null





This message was edited 1 time. Last update was at 19/05/2011 07:22:12

[MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

ah tah, se vc quer que o VRaptor deserialize algo que veio por json (ou xml) vc precisa anotar o método do controller com @Consumes:



senão o vraptor só tenta popular com os dados do formulário (parâmetros do request)

This message was edited 1 time. Last update was at 19/05/2011 09:40:34


--
Caelum
www.caelum.com.br

gabriel.mancini
Debugger

Membro desde: 07/06/2010 11:22:07
Mensagens: 54
Offline

Ahh Legal Lucas,

mais e se eu estiver utilizando o Results.representation() ?
sendo assim a action deveria verificar o requestHeader antes de saber como tratar o parametro enviado

como isso funcionaria??
[MSN]
Lucas Cavalcanti
GUJ Hacker
[Avatar]

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

uma coisa é o content-type da requisição (que o VRaptor usa para deserializar) e outra é o header Accept (que o VRaptor usa no representation, para serializar).

se vc está usando um cliente http para se comunicar com o VRaptor, vc precisa setar tanto o header Content-type quanto o Accept.

de qqer forma vc não precisa mexer com esses headers na mão, o VRaptor já faz isso

--
Caelum
www.caelum.com.br

gabriel.mancini
Debugger

Membro desde: 07/06/2010 11:22:07
Mensagens: 54
Offline

acho q não entendi direito,

por exemplo na action Show se eu enviar um:
get normal (pelo browser) ele renderiza a view correspondente
get getJSON (usando jquery) ele renderiza um json



agora quero fazer algo assim no update, então caso eu envio o put via form request ele identifica
mais se eu envia usando um putJSON ele não deserializa pro objeto



ele da um erro:

  • Unable to handle media type [application/x-www-form-urlencoded]: no deserializer found.


  • PS: eu sei q o metodo putJSON não existe no jquery mais eu o extendi



    aki http://gabrielmancini.blogspot.com/2011/05/rest-jquery-ajax-json.html eu explico melhor como isso funciona
    [MSN]
    Lucas Cavalcanti
    GUJ Hacker
    [Avatar]

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

    o dataType é o que vc espera receber, não é o que ele vai mandar... ou seja, é o Accept, não o Content-Type.

    por padrão ele manda o data como www-formurlencoded, que o VRaptor trata como parametro da request mesmo...

    faz um teste, olhe no firebug quais são os headers da requisição



    --
    Caelum
    www.caelum.com.br

    gabriel.mancini
    Debugger

    Membro desde: 07/06/2010 11:22:07
    Mensagens: 54
    Offline

    desculpa lucas não entendi.

    vc entendeu qual eh minha intenção?
    [MSN]
    Lucas Cavalcanti
    GUJ Hacker
    [Avatar]

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

    entendi, o problema é o tipo e o formato de dados que o jquery tah mandando pro VRaptor...

    vc tem o firebug instalado no seu firefox?

    consegue ver qual é o corpo e os headers da sua requisição que usa o putJSON?

    --
    Caelum
    www.caelum.com.br

    gabriel.mancini
    Debugger

    Membro desde: 07/06/2010 11:22:07
    Mensagens: 54
    Offline



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