Я создаю Java REST API с использованием Jersey 2.27, и в моем тестовом классе (как показано ниже) я получаю следующую ошибку компиляции: Cannot resolve method 'bindFactory(java.lang.Class<LdapServiceFactory>)'
.
Я не понимаю, почему это не компилируется. У метода bindFactory
есть один параметр типа Class<? extends Supplier<T>>
, и мой фабричный класс реализует Supplier<LdapService>
, как показано ниже. Может кто-нибудь объяснить мне, почему это не скомпилируется?
PS: Это всего лишь фрагменты полного кода, чтобы прояснить ситуацию.
import org.glassfish.jersey.internal.inject.AbstractBinder;
public class AppTest extends JerseyTest {
@Override
protected Application configure() {
return new ResourceConfig()
.packages(App.class.getPackage().getName())
.register(new AbstractBinder() {
@Override
protected void configure() {
bindFactory(LdapServiceFactory.class).to(LdapService.class);
}
});
}
}
Вот как выглядит мой LdapServiceFactory
класс:
public class LdapServiceFactory<T> implements Supplier<LdapService> {
@Override
public LdapService<T> get() {
return createLdapService(DEFAULT_PROPERTIES_FILE);
}
}
И, наконец, класс LdapService
:
public interface LdapService<T> {
List<T> request(String filter, String[] attributes, ResponseHandler<T> responseHandler) throws FilterException, ServerException;
}