Использование типа шаблона Java-generics в объекте RESTful Response через GenericEntity <List <T >>
У меня есть общий класс ресурсов JAX-RS, и я определил общийfindAll
метод
public abstract class GenericDataResource<T extends GenericModel> {
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response findAll() {
Query query = em.createNamedQuery(modelClass.getSimpleName()+".findAll");
List<T> list = query.getResultList();
return Response.ok(new GenericEntity<List<T>>(list) {}).build();
}
}
и класс пользователя:
public class User extends GenericModel {
...
}
И вот пример определения подкласса:
@Path("users")
public class UserResource extends GenericDataResource<User> {
public UserResource() {
super(User.class);
}
}
Я получаю ниже исключения:
com.sun.jersey.api.MessageException: A message body writer for Java class
java.util.Vector, and Java type java.util.List<T>,
and MIME media type application/json was not found exception.
Если я заменю T с определенным классом, таким какUser
вот так:
GenericEntity<List<User>>(list)
тогда работает нормально.
Любая идея относительно того, как я могу заставить это работать с универсальным T?