Как повторно использовать JSON / JAXB Джерси для сериализации?
У меня есть служба JAX-RS REST, реализованная с использованием Джерси. Одна из замечательных особенностей JAX-RS / Jersey заключается в том, как легко POJO можно превратить в службу REST, просто добавив несколько аннотаций Java ... в том числе простой механизм преобразования POJO в JSON - используя аннотации JAXB.
Теперь я хотел бы иметь возможность воспользоваться этой замечательной функцией JSON-ifying для целей, не относящихся к REST - я бы хотел иметь возможность просто сериализовать некоторые из этих объектов на диск в виде текста JSON. Вот пример объекта JAXB, который я хотел бы сериализовать:
@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 может превратить один из них в json без дополнительной информации. Мне интересно, раскрыл ли Джерси эту функциональность в API для нужд, подобных моей? Мне пока не повезло найти его ...
Благодарность
ОБНОВЛЕНИЕ 2009-07-09: Я узнал, что могу использовать объект Providers дляпочт делай то, что я хочу:
@Context Providers ps;
MessageBodyWriter uw = ps.getMessageBodyWriter(UserInfoImpl.class, UserInfoImpl.class, new Annotation[0], MediaType.APPLICATION_JSON_TYPE);
uw.writeTo(....)
... Это записывает объект как json в любой выходной поток, что было бы идеально для меня, но я могу получить только объект Providers, используя @Context из объекта @Component. Кто-нибудь знает, как получить к нему доступ из обычного, без аннотации POJO? Благодарность