Ho un servizio REST JAX-RS implementato utilizzando Jersey. Una delle fantastiche funzionalità di JAX-RS/Jersey è la facilità con cui un POJO può essere trasformato in un servizio REST, semplicemente aggiungendo alcune annotazioni Java ... compreso un meccanismo banalmente semplice per la conversione dei POJO in JSON - usando le annotazioni JAXB.Come riutilizzare JSON/JAXB di Jersey per la serializzazione?
Ora, mi piacerebbe essere in grado di sfruttare questa fantastica funzionalità di JSON-ifying per scopi non REST - Mi piacerebbe essere in grado di serializzare alcuni di questi oggetti su disco, come testo JSON. Ecco un oggetto JAXB esempio, che avrei voluto di serializzare:
@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 può trasformare uno di questi in JSON, senza informazioni aggiuntive. Mi chiedo se Jersey abbia esposto questa funzionalità nell'API per esigenze come la mia? Non ho avuto fortuna a trovarlo finora ...
Grazie!
UPDATE 2009-07-09: ho imparato che posso usare i fornitori di oggetto per quasi faccio esattamente quello che voglio:
@Context Providers ps;
MessageBodyWriter uw = ps.getMessageBodyWriter(UserInfoImpl.class, UserInfoImpl.class, new Annotation[0], MediaType.APPLICATION_JSON_TYPE);
uw.writeTo(....)
... Questo scrive l'oggetto come JSON per qualsiasi outputstream, che sarebbe perfetto per me, ma posso solo ottenere l'oggetto Provider utilizzando @Context da un oggetto @Component. Qualcuno sa come accedervi da un POJO regolare e non annotato? Grazie!
Sto cercando di trovare informazioni anche su questo, ma stavo cercando qualcosa che utilizza solo javax. */Java. * Solo API (Non mi dispiace aggiungere ulteriori librerie per test di JUnit, ma mi aspetterei che essere presente nel JEE6 RI –
Sto anche bene chiamando una classe per il bootstrap. –