Boa tarde,
Estou implementando um método salvar de um crud quando me deparei com o seguinte problema. O vRaptor não está convertendo o json em objecto java.
O Cliente está indo como null
public void criar(Cliente cliente){
System.out.println(cliente.getDataExpedicao());
}
Este é o Json que está sendo enviado:
Alguém pode me ajudar?
Olá
Para o Vraptor converter o cliente, vc tem que enviar os parametros no formato cliente.nome, cliente.id , cliente.cpfCnpj, e por ai vai, senão ele não tem como saber que os campos pertencem aquela variavel.
Tem um tutorial do Daniel que você pode ver pra entender como deve converter o json:
http://dkist.k2studio.com.br/2010/05/27/integracao-extjs-com-vraptor-3/
[]'s
Você está me dizendo que meu json deve ser enviado dessa forma?
Olá
Você está enviando os dados através de um form?
se sim, basta que seus inputs tenhas os nomes certos, que o própio método submit irá enviar da maneira correta.
ou você está gerando esse JSON e enviando para o vraptor de outra maneira?
Posta o código do seu form do ext pra gente ver como você está enviando os dados.
[]'s
o VRaptor não deserializa json por padrão (se vc fizer um post onde o corpo é o json), só xml.
mas se vc está em javascript, é fácil mandar form parameters
Usar form paramers ao invés de passar um json?
Fiz um teste, enviei um xml ele também não serializou.
precisa anotar o método com @Consumes , e o content-type da requisição tem que estar setado como “application/xml”
Lucas, deu certo. Coloquei essa annotation e funcionou.
No caso, o vRaptor usa o XStream para fazer isso, né?
exato, mas vc pode sobrescrever a implementação e usar outra lib
Ninguém nunca se habilitou a implementar a deserialização de json’s no vRaptor? Taí uma boa coisa pra eu fazer no meu tempo livre!
Só pra marcar como resolvido.
contribuições são sempre bem vindas =)
se precisar de qqer ajuda é só falar =)
corrigindo falha minha: existe o deserializer de json sim, e já está habilitado por padrão
/***
* Copyright (c) 2009 Caelum - www.caelum.com.br/opensource All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package br.com.caelum.vraptor.deserialization;
import static com.google.common.base.Preconditions.checkArgument;
import java.io.InputStream;
This file has been truncated. show original