我正在试图弄清楚如何在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中使用声明性服务。