VRaptor Results.xml() retorno não vem populado

2 respostas
R

Prezados,

Possuo uma classe Usuario e outra UsuarioAutenticado.

A classe usuário, é uma classe de dominio:

@Entity
public class Usuario implements Serializable{

	private int id;

	private String name;

	private String email;

	private String login;

	private Grupo grupo;

//getters e setters
}

Minha classe UsuarioAutenticado é um componente:

@Component
@SessionScoped
public class UsuarioAutenticado implements Serializable{

	private Usuario user
	private List<String> autorizedGroups;
	private List<String> autorizedMethodsNames;
//getters e setters
}

Quando eu faço assim no meu controller:

Usuario usuario = usuarioDAO.findById(id);
result.use(Results.xml()).from(usuario).serialize();

1) Dúvida: Eu recebo no browser o Xml deste objeto, contudo o campo Grupo não vem. Pq?
2) Dúvida: Se eu fizer assim:

UsuarioAutenticado usuario = usuarioDAO.autentica(usuario);
result.use(Results.xml()).from(usuario).serialize();

O Xml do retorno vem vazio (quando eu debugo, vejo que o objeto está populado). Alguma suguestão pra esses dois casos?

2 Respostas

Lucas_Cavalcanti

resposta pras duas perguntas:
por padrão o vraptor só serializa pra xml os campos primitivos (String, números e datas)… se vc quiser serializar um campo não primitivo vc precisa incluir:

result.use(Results.xml()).from(usuario).include("grupo").serialize();
//ou
result.use(Results.xml()).from(usuarioAutenticado).include("usuario", "usuario.grupo").serialize();
R

Deu certo! Valeu!

Criado 8 de fevereiro de 2010
Ultima resposta 9 de fev. de 2010
Respostas 2
Participantes 2