Я использовал механизм JDK SPI во многих других приложениях без проблем;однако я не могу заставить его работать в Grails.
Я пробовал обычный код (показанный ниже) как из статического инициализатора, так и из конструктора класса, но ни один из них не работал.
ServiceLoader loader = ServiceLoader.load(QueryEngine.class);
Iterator<QueryEngine> it = loader.iterator();
Итератор фактически не выполняет итерацию по реализующим классам.
Я также пытался:
ServiceLoader.load(QueryEngine.class, Thread.currentThread().getContextClassLoader());
, который должен использовать загрузчик классов для текущегокласс, но это тоже не работает.
Есть ли какой-то другой механизм, который я должен использовать для загрузки реализующих классов?