Como reutilizar o JSON / JAXB de Jersey para serialização?
Eu tenho um serviço JAX-RS REST implementado usando Jersey. Um dos recursos interessantes do JAX-RS / Jersey é a facilidade com que um POJO pode ser transformado em um serviço REST, simplesmente por algumas anotações de Java ... incluindo um mecanismo fácil de traduzir POJOs para JSON - usando anotações JAXB.
Agora, gostaria de aproveitar essa funcionalidade interessante de JSON para fins não REST - adoraria poder apenas serializar alguns desses objetos em disco, como texto JSON. Aqui está um exemplo de objeto JAXB que eu gostaria de serializar:
@XmlRootElement(name = "user")
public class UserInfoImpl implements UserInfo {
public UserInfoImpl() {}
public UserInfoImpl(String user, String details) {
this.user = user;
this.details = details;
}
public String getUser() { return user; }
public void setUser(String user) { this.user = user; }
public String getDetails() { return details; }
public void setDetails(String details) { this.details = details; }
private String user;
private String details;
}
Jersey pode transformar um desses em json sem informações adicionais. Eu estou querendo saber se Jersey expôs essa funcionalidade na API para necessidades como a minha? Eu não tive sorte em encontrá-lo até agora ...
Obrigado!
ATUALIZAÇÃO 2009-07-09: Aprendi que posso usar o objeto Provedores paraquase faça exatamente o que eu quero:
@Context Providers ps;
MessageBodyWriter uw = ps.getMessageBodyWriter(UserInfoImpl.class, UserInfoImpl.class, new Annotation[0], MediaType.APPLICATION_JSON_TYPE);
uw.writeTo(....)
... Isso grava o objeto como json em qualquer fluxo de saída, o que seria perfeito para mim, mas só posso obter o objeto Providers usando @Context de um objeto @Component. Alguém sabe como acessá-lo de um POJO regular e não anotado? Obrigado!