我正在考虑使用OSGi编写一组新的应用程序,但是他们需要与现有的非OSGi应用程序进行大量交互。
为了澄清,新应用程序需要调用由其他团队维护的现有非OSGi代码库(通常是不同协议的专有服务),而新的非OSGi应用程序将需要调用新的OSGi服务。
我没有看到有关如何执行此操作的文档。
有人可以指出我正确的步骤
答案 0 :(得分:3)
听起来你想将OSGi嵌入到更大的应用程序中。一个很好的起点是我前段时间写的一篇博文:http://njbartlett.name/2011/07/03/embedding-osgi.html
在OSGi包和对象之间创建可见性的技巧"外部" OSGi是使用系统包的BundleContext发布和/或使用服务。嵌入代码必须知道要在OSGi中显示的外部应用程序中的对象,并且应将它们作为服务发布。请注意,您需要通过系统包导出导出服务接口包 - 如何执行此操作在博客文章中进行了描述。
答案 1 :(得分:1)
OSGi服务仅用于同一JVM进程内的通信。所以我想你想在进程之间进行通信。在这种情况下,您拥有所有常用的远程协议,如SOAP,Rest,RMI。在OSGi方面,您可以使用分布式OSGi(DOSGi)从OSGi服务桥接到提供SOAP或REST端点。