Здравствуйте, mkind, Вы писали:
M>в текстовый файлик EAR/core.jar/META-INF/services/com.site.MyInterface записываются все реализации M>в коде пишется ServiceLoader<MyInterface> loader = ServiceLoader.load(MyInterface .class)
M>Теперь EARов стало больше, у каждого есть своей перечень имплементаций, но не хочется в каждом дублировать MyInterface (и несколько сопутствующих классов), поэтому вынес общую часть из core.jar в отдельный separated.jar, который кладу в EAR/libs. M>Но имплементации теперь не загружаются, т.е. ServiceLoader.load(MyInterface .class) пуст.
M>Что не так? Вся структура EARа осталась без изменений: по-прежнему есть файл EAR/core.jar/META-INF/services/com.site.MyInterface, все описанные в нём имплементации по-прежнему лежат в EAR/core.jar. M>Есть подозрение в разных класспассах межде EAR/libs и EAR/core.jar, тогда как в даннам случае можно выйти из положения?
Что-то я не понял структуру. EAR был один. Стало много. Но почему-то общий код находится в EAR/libs, т.е. внутри конкретного EAR, а не где-то в общих либах сервера.