2

我试图弄清楚如何在 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 一起使用。

4

0 回答 0