Boa tarde pessoal, tudo bem?
Eu gostaria de obter um Response do tipo XML ou Json no mesmo método, mas não gostaria de usar JAXB. Por exemplo:
Suponhamos que fiz uma requisição para o verbo abaixo, e coloquei no HEAD para aceitar xml, apesar de o conteúdo de retorno ser um Json
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public void findOne(@PathParam("id") Long id)
{
Usuario usuario = new UsuarioDAO().findOne(id);
String conteudo = ConvertUtil.toJson(usuario);
return Response.ok(conteudo).build();
}
Se eu usasse o JAXB, bastaria eu substituir "conteudo", usado como parâmetro na Response, por "usuario". Assim ele retornaria em qualquer um dos dois formatos sem problemas.
Como eu poderia fazer o mesmo usando meus próprios conversores pessoais, como XStream e Gson? O jeito seria eu checar manualmente o head da requisição, para assim escolher qual return usar? Não haveria uma forma automática como essa do JAXB?