Wie kann man JSON / JAXB von Jersey für die Serialisierung wiederverwenden?

Ich habe einen JAX-RS-REST-Dienst mit Jersey implementiert. Eine der coolen Eigenschaften von JAX-RS / Jersey ist, wie leicht ein POJO in einen REST-Service umgewandelt werden kann, indem einfach ein paar Java-Annotationen eingestreut werden.

Jetzt möchte ich diese coole JSON-fähige Funktion für Nicht-REST-Zwecke nutzen können. Ich würde gerne in der Lage sein, einige dieser Objekte einfach als JSON-Text auf die Festplatte zu serialisieren. Hier ist ein Beispiel für ein JAXB-Objekt, das ich serialisieren möchte:

@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 kann eine davon ohne zusätzliche Informationen in Json verwandeln. Ich frage mich, ob Jersey diese Funktionalität in der API für Bedürfnisse wie meine verfügbar gemacht hat. Ich hatte bisher kein Glück, es zu finden ...

Vielen Dank!

UPDATE 2009-07-09: Ich habe gelernt, dass ich das Provider-Objekt dazu verwenden kannfast mach genau das was ich will:

  @Context Providers ps;
  MessageBodyWriter uw = ps.getMessageBodyWriter(UserInfoImpl.class, UserInfoImpl.class, new Annotation[0], MediaType.APPLICATION_JSON_TYPE);

  uw.writeTo(....)

... Dies schreibt das Objekt als json in einen beliebigen Ausgabestream, was für mich perfekt wäre, aber ich kann das Providers-Objekt nur mit @Context von einem @Component-Objekt abrufen. Weiß jemand, wie er von einem normalen, nicht kommentierten POJO darauf zugreifen kann? Vielen Dank!

Antworten auf die Frage(7)

Ihre Antwort auf die Frage