ich versuchen, einige Liste der documemts von einer Ressource zur Ausgabe:Rangierung Liste <T> mit Jersey und JAXB
@GET
@Produces({MediaType.APPLICATION_XML})
public Response getDocuments(@QueryParam("provider") String provider) {
List<Document> documents = service.getDocuments(provider);
return Response.ok(
new GenericEntity<List<Document>>(
new ArrayList<Document>(documents)) {})
.build();
}
Die Document-Klasse ist nicht mit @XmlElement kommentierten (Ich mag nicht wirklich meine schöne Objekte mit einer solchen Low-Kommentierung Level Sachen ...), aber ich habe ein registrierter Provider für sie:
@Service
@Provider
@Produces({MediaType.APPLICATION_XML, MediaType.TEXT_XML, MediaType.WILDCARD})
@Consumes({MediaType.APPLICATION_XML, MediaType.TEXT_XML, MediaType.WILDCARD})
public class JaxRsDocumentSerializer extends
AbstractMessageReaderWriterProvider<Document> {
Wenn ich diese Ressource rufen sie einen Client mit folgenden Code:
Ich bekomme die gefürchtete Ausnahme:
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException:
A message body writer for Java class java.util.ArrayList, and Java type
java.util.List<com.polyspot.model.core.Document>,
and MIME media type application/xml was not found
Ich verstehe nicht, was hier falsch ist, wie ich Code gefolgt ich an anderer Stelle gefunden, darunter in SO.
Hilfe sehr geschätzt.
zu vermeiden. Könnten Sie Informationen für Klasse Document zur Verfügung stellen? Ist richtig angemerkt? –
Entschuldigung. Ja, so ist es. Wir haben Dokument-Instanzen für "Zeitalter" mit Jersey marshaliert/entpackt. – insitu
Oups. Der obige Kommentar war falsch, wir notieren keine Objekte, verwenden jedoch einen benutzerdefinierten Anbieter. Ich habe die Frage aktualisiert, um dies zu berücksichtigen. – insitu