我计划使用Java开发一个基于MVC框架的web应用程序。这个应用程序应该支持插件。
因此,我计划使用OSGI容器(Apache felix)创建插件,并将插件作为服务公开(使用OSGI的服务注册表功能)。
两者(web应用程序和OSGI服务)将在相同的JVM中运行。
所以,我需要关于如何在OSGI容器之外使用OSGI服务(插件)的帮助?
我基本上想在OSGI之外调用公开的OSGI服务,在本例中是在我的web应用程序中。
提前感谢!
发布于 2016-11-22 22:34:33
为此,您需要将服务的api包放在启动OSGi框架的类路径中。然后,您需要将此程序包作为系统程序包导出。这是实现服务的捆绑包和非OSGi代码可以看到相同服务接口类的唯一方式。
然后使用FrameworkFactory创建一个可以启动的框架实例。从框架中,您可以获得BundleContext并使用它来获得服务实例。
See embedding felix获取更多详细信息。
https://stackoverflow.com/questions/40742715
复制相似问题