JSF マネージド Bean に複数の実装 (参照) があるすべての OSGi サービスを取得する方法を見つけようとしています。
現在、サービスにアクセスするために CDI アノテーションを使用していますが、これは複数のサービス参照をサポートしていないようで、方法がわかりません。
たとえば、次を使用してサービスにアクセスできますが、一度に 1 つしか取得できません。
import javax.inject.Inject;
import org.glassfish.osgicdi.OSGiService;
@ManagedBean
@ApplicationScoped
public class ConnectionMgr
{
@Inject @OSGiService
private ComponentFactory m_Factory;
}
以前は、OSGi 宣言型サービスを使用して、以下のように複数のサービスをバインドしていました。
@aQute.bnd.annotation.component.Reference(multiple = true, dynamic = true)
public void setService(SomeService service)
{
m_ServiceList.add(service);
}
しかし、私の知る限り、宣言型サービスを JSF マネージド Bean で使用することはできません。