我试图弄清楚如何在 JSF 托管 bean 中有多个实现(引用)的情况下获取所有 OSGi 服务。
目前我正在使用 CDI 注释来访问服务,但这似乎不支持多个服务引用或者我不知道如何。
例如,我可以使用以下内容访问一项服务,但一次只能获取一项。
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 一起使用。