Próbuję napisać ogólną funkcję w Jersey, która może być używana do pobierania listy obiektów tego samego typu poprzez REST. Oparłem się na informacjach znalezionych na tym forum: linkPobieranie zasobu REST jako listy <T> z Jersey
@Override
public <T> List<T> fetchResourceAsList(String url) {
ClientConfig cc = new DefaultClientConfig();
Client c = Client.create(cc);
if (userName!=null && password!=null) {
c.addFilter(new HTTPBasicAuthFilter(userName, password));
}
WebResource resource = c.resource(url);
return resource.get(new GenericType<List<T>>() {});
}
Jednak to nie działa. Jeśli spróbuję go wykonać, pojawia się następujący błąd: SEVERE: A message body reader for Java class java.util.List, and Java type java.util.List<T>, and MIME media type application/xml was not found
.
Jednak jeśli piszę tę funkcję bez szablonów (zastępując T rzeczywistą nazwą klasy), to po prostu działa dobrze. Oczywiście w ten sposób funkcja traci sens.
Czy istnieje sposób, aby to naprawić?
Patrz niżej linkiem http://stackoverflow.com/questions/1603404/using-jaxb-to-unmarshal-marshal-a-liststring – fmucar
@fmucar: to znowu ma wskazówek na serwerze jako Widzę. Potrzebuję ogólnego wsparcia typu dla klienta. – NagyI