Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Eclipse中使用多个OSGi捆绑包_Java_Eclipse_Osgi_Osgi Bundle - Fatal编程技术网

Java 在Eclipse中使用多个OSGi捆绑包

Java 在Eclipse中使用多个OSGi捆绑包,java,eclipse,osgi,osgi-bundle,Java,Eclipse,Osgi,Osgi Bundle,我目前正在学习如何使用OSGi,我有一个小问题,我似乎无法在谷歌上找到答案 我正在尝试为我的移动应用程序构建一个后端,该后端将连接到几个下游节点。目前,这个后端最初只支持我的移动应用程序,但我计划将我的web门户也改为使用它 看看OSGi如何让我将代码模块化为几个包,我的想法是: Backend |--- osgi-mobile |--- osgi-webportal |--- osgi-downstreamnode1 |--- osgi-downstreamnode2 我的问题在于使用/消费

我目前正在学习如何使用OSGi,我有一个小问题,我似乎无法在谷歌上找到答案

我正在尝试为我的移动应用程序构建一个后端,该后端将连接到几个下游节点。目前,这个后端最初只支持我的移动应用程序,但我计划将我的web门户也改为使用它

看看OSGi如何让我将代码模块化为几个包,我的想法是:

Backend
|--- osgi-mobile
|--- osgi-webportal
|--- osgi-downstreamnode1
|--- osgi-downstreamnode2
我的问题在于使用/消费前端捆绑包中下游节点捆绑包中的服务(例如,osgi mobile使用/消费来自osgi-downstreamnode1的服务)


我目前正在Eclipse Mars中构建它们,除了将整个osgi-downstreamnode1捆绑包打包到一个JAR中,并将其导入osgi mobile捆绑包之外,我似乎不知道如何在Eclipse中引用这些捆绑包,以及让osgi mobile捆绑包在运行时调用其他捆绑包。

可以在osgi中使用的服务是通过接口定义的。接口必须独立于实现包:
bundleA
使用
ServiceInterface
的实现,该实现在
bundleBase
中定义。现在
bundleA
依赖于
bundleBase
。然后,您可以添加实现该接口的
bundeB
,从而也依赖于
bundleBase

通过OSGi
BundleEA
现在可以请求服务
ServiceInterface
并获得
bundleeB
的实例,而不存在直接依赖关系。
请参阅

可以在OSGi中使用的服务是通过接口定义的。接口必须独立于实现包:
bundleA
使用
ServiceInterface
的实现,该实现在
bundleBase
中定义。现在
bundleA
依赖于
bundleBase
。然后,您可以添加实现该接口的
bundeB
,从而也依赖于
bundleBase

通过OSGi
BundleEA
现在可以请求服务
ServiceInterface
并获得
bundleeB
的实例,而不存在直接依赖关系。
请参阅

您需要考虑开发时间上的服务。hotzst引用的教程应该会有所帮助。打包的基础是为每个eclipse项目创建一个包。然后,如何将它们打包在一起取决于要部署到的位置

我猜您目前使用EclipsePDE透视图来开发应用程序。我不建议这样做。如果您知道您不开发Eclipse RCP应用程序,那么我会考虑纯Eclipse + Maven或BDNoToes。我有很多钱。有关bndtools,请参阅


无论如何,你应该期待一段相当长的学习曲线。所以有些书可能有助于或类似。

你需要考虑开发时间上的服务。hotzst引用的教程应该会有所帮助。打包的基础是为每个eclipse项目创建一个包。然后,如何将它们打包在一起取决于要部署到的位置

我猜您目前使用EclipsePDE透视图来开发应用程序。我不建议这样做。如果您知道您不开发Eclipse RCP应用程序,那么我会考虑纯Eclipse + Maven或BDNoToes。我有很多钱。有关bndtools,请参阅

无论如何,你应该期待一段相当长的学习曲线。所以有些书可能会有帮助,比如或。

谢谢你的帮助

通过一些尝试和错误,我通过导出包选项和导入包选项通过MANIFEST.MF获得了我想要的东西。关于第三方JAR的使用,我遇到了另一组问题,但我将在新问题中发布这些问题。

谢谢您的帮助


通过一些尝试和错误,我通过导出包选项和导入包选项通过MANIFEST.MF获得了我想要的东西。关于第三方JAR的使用,我遇到了另一组问题,但我将在一个新问题中发布这些问题。

我不理解您面临的问题。是关于提供和消费服务还是关于打包/部署?@ChristianSchneider我想这两者都有一点?提供和使用服务将在运行时进行,而打包和部署将在编译期间进行?我不理解您面临的问题。是关于提供和消费服务还是关于打包/部署?@ChristianSchneider我想这两者都有一点?提供和使用服务将发生在运行时,而打包和部署将发生在编译期间?