Im przy użyciu usługi Jersey do zbudowania usługi REST i chcesz zwrócić Collection<String>
jako XML.Nagrywarka treści wiadomości dla klasy Java java.util.ArrayList ... i MIME Media tekst/xml nie został znaleziony
@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());
}
}
ale moje próby nie powiodą się z następującym wyjątkiem:
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: Pisarz treść wiadomości dla klasy Java java.util .ArrayList i typu Java klasa java.util.ArrayList i MIME typ mediów text/xml nie został znaleziony
i wszystkie wyniki do tego wyjątku znalazłem przez google czynienia z powracającym text/json zamiast text/xml jak w mojej sytuacji.
Czy ktoś może mi pomóc? Pomyślałem, że jeśli użyłbym odpowiedzi, byłby to mój element główny w XML i mojej kolekcji lista elementów łańcuchowych w nim ..
Czy nie ma innego sposobu? Myślałem, że Response wykona zadanie za to, co utworzyłeś grupy klasowe.-> udostępnia kontener dla listy akt jako element główny – lrxw
Co najmniej coś musi przekazać Jersey nazwę głównego elementu XML. Wygląda na to, że możesz użyć [opakowania ogólnego i JAXB] (http://stackoverflow.com/a/1603484/1818625) lub [biblioteki 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 ..możesz rozwiązać to? – user2416728