Я реализовал следующий класс и реализовал поисковый метод get list объекта Object для заданного типа T, используя вызов REST.
public class AmapiService<T extends Resource> implements RestService<T> {
@Override
public List<T> search( MultivaluedMap<String, String> aQueryParams ) {
MultivaluedMap<String, String> lQueryParams = aQueryParams;
Client lClient = buildClient();
WebTarget ltarget = lClient.target( iRestDriver.target( aApiUrl ).getUri() );
for ( String lKey : lQueryParams.keySet() ) {
ltarget = ltarget.queryParam( lKey, lQueryParams.getFirst( lKey ) );
}
List<T> lObjects = null;
lObjects = ltarget.request( MediaType.APPLICATION_JSON ).get( new GenericType<List<T>>() {
} );
return lObjects;
}
}
так создается экземпляр для вызова класса и метода поиска.
AmapiService<RFQDefinition> RFQService =
new AmapiService<RFQDefinition>();
List<RFQDefinition> qfq = RFQService.search( lQueryParam );
когда я запускаю это, я получаю следующую ошибку
May 07, 2018 1:48:14 PM org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor aroundReadFrom
SEVERE: MessageBodyReader not found for media type=application/json, type=interface java.util.List, genericType=java.util.List<T>.
Это означает, что RFQDefinition не устанавливается в T в new GenericType<List<T>>().
как я могу установить тип от T в AmapiService<T extends Resource>
до new GenericType<List<T>>()
если я определю его new GenericType<List<RFQDefinition>>()
Вместо Т его работает