Im utilizza Jersey per creare un servizio REST e desidera restituire uno Collection<String>
come XML.Un writer del corpo del messaggio per la classe Java java.util.ArrayList ... e il tipo di supporto MIME text/xml non è stato trovato
@GET
@Produces(MediaType.TEXT_XML)
@Path("/directgroups")
public Response getDirectGroupsForUser(@PathParam("userId") String userId) {
try {
Collection<String> result = service.getDirectGroupsForUser(userId, null, true);
// return result; //first try
// return result.toArray(new String[0]); //second try
return Response.ok().type(MediaType.TEXT_XML).entity(result).build(); //third try
} catch (UserServiceException e) {
LOGGER.error(e);
throw new RuntimeException(e.getMessage());
}
}
ma i miei tentativi non riescono, con la seguente eccezione:
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: Uno scrittore corpo del messaggio per Java di classe java.util .ArrayList, e il tipo di classe Java java.util.ArrayList, e MIME tipo di supporto text/xml non è stato trovato
e tutti i risultati di tale eccezione ho trovato tramite Google affrontato il ritorno del testo/jSON invece di text/xml come nella mia situazione.
Qualcuno può aiutarmi? Ho pensato che, se io uso una risposta, che sarebbe stato il mio elemento principale in XML e la mia collezione un elenco di elementi stringa in esso ..
Non c'è altro modo? Pensavo che Response avrebbe fatto il lavoro per quello che hai creato i gruppi di classe.-> fornire un contenitore per la lista un atto come elemento radice – lrxw
Al minimo, qualcosa deve dire a Jersey il nome dell'elemento XML radice. Sembra che tu possa utilizzare un [wrapper generico e JAXB] (http://stackoverflow.com/a/1603484/1818625) o la [biblioteca XStream] (http://stackoverflow.com/a/8427694/1818625). –
http://stackoverflow.com/questions/17342218/getting-error-a-message-body-writer-for-java-class-java-util-arraylist-listjava .. puoi risolvere questo problema ?? – user2416728