Есть intefrace MyIntefrace.JBoss 7 ServiceLoader
Система имеет несколько EAR, каждая из которых имеет собственные реализации этой функции. Мне нужно найти все реализации без их имен (? Extends MyInterface).
я решил использовать java.util.ServiceLoader и создал банку с META-INF/услуги/com.example.MyInterface внутри него, муравей этот сосуд может быть развернут в любом из колосьев.
Сосуд имеет сервлет и следующий код внутри метода инициализации INT в:
ServiceLoader<MyInterface > loader = ServiceLoader.load(MyInterface .class);
Iterator<MyInterface > it = loader.iterator();
Но итератор еще пусты ..
I судимого добавить услуги/com.example.MyInterface в Ушах META-INF , но результат тот же.
Этот подход отлично работает в jboss 6 и tomcat.
Вы нашли решение этой проблемы? – Rhys
каждый EAR должен иметь META-INF/services/com.example.MyInterface текстовый файл с перечислением всех реализаций внутри этого EAR –
Вы говорите, что с использованием архитектуры ServiceLoader вы могли обнаружить сервисы между отдельными развертываниями EAR? то есть EAR1 может найти службы в EAR2, не объявляя прямую зависимость друг от друга? (через манифест или jboss-deployment-structure.xml) – Rhys