使用Glassfish和CDI获取服务属性或其他包

时间:2014-07-25 07:18:43

标签: java glassfish osgi cdi

我使用glassfish 4 OSGi控制台来管理捆绑包。所以,如果我想从另一个包中获取一个包,我使用@Inject和@OSGIService注释。 当我在上下文中注册服务时,我将属性包含在其中:

context.registerService(
        ServiceClass.class.getName(), new ServiceClass(), props);

当我注入它时,我能以某种方式获得这些属性吗?

我可以使用CDI获取捆绑上下文吗?

如果bundle之间有一些不同的接口实现,我想通过代码中的属性来获取它们,我该如何实现呢?

1 个答案:

答案 0 :(得分:0)

尝试@Inject BundleContext上下文;注入BundleContext。 @Inject @OSGIService @Filter(" myprop = a")MyService服务;注入具有某些属性的服务。

这是来自焊接文档,但大多数它也适用于glassfish。

有关详细信息,请参阅此处:

http://de.slideshare.net/TrevorReznik/weldosgi-injecting-easiness-in-osgi