当前位置: 首页 > 知识库问答 >
问题:

在Eclipse中使用多个OSGi包

宋建本
2023-03-14
Backend
|--- osgi-mobile
|--- osgi-webportal
|--- osgi-downstreamnode1
|--- osgi-downstreamnode2

我的问题在于在前端包中使用/消费来自下游节点包的服务(例如osgi-mobile使用/消费来自osgi-downstreamnode1的服务)。

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

共有1个答案

施俊明
2023-03-14

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

我猜您目前使用eclipse PDE透视图来开发应用程序。我不建议这样做。如果您知道自己不开发Eclipse RCP应用程序,那么我会考虑使用普通Eclipse+maven或BNDTools。我获得了大量在普通eclipse中开发并部署到Apache Karaf中的教程。对于bndtools,请参阅其教程。

在任何情况下,你都应该期待一段相当长的学习曲线。所以有些书可能会有帮助,比如OSGi in practice,Apache Karaf Cookbook。

 类似资料:
  • 问题内容: Sherlog是基于OSGi的日志分析器,如果我将此项目作为工作区快照导入,则我的工作区中会收到很多项目,但是我希望将它们作为项目中的子项目。 另一个选择是从svn签出,但是然后我遇到了其他问题(我不知道如何设置依赖项以进行自动构建) 是否有人对此主题有想法或好的链接?谢谢 问题答案: Eclipse不支持子项目。Eclipse的生活方式是工作空间中的一个或多个项目(也许使用工作集来避

  • 我想创建一个类的实例,该类可以访问底层的嵌入式derby数据库,并使用声明性服务将该类传递给绑定到数据库包的每个包。 我在derby留档中看到,为多个线程共享一个连接有很多陷阱。所以我在考虑为我正在创建的类的每个实例创建一个连接。由于我只想要一种非常简单的方法来创建多个连接并管理它们,因此在这里使用“MiniConnectionPoolManager”似乎是一个不错的选择。derby的示例代码如下

  • 我试图构建一个使用嵌入式OrientDB(当前为“Memory:”)图形数据库的应用程序。我用的是OrientDB2.2 orientdb-graphdb不应该依赖于一个合适的包,或者包括并导出类吗?

  • 我在使用rome库创建RSS Feeds时遇到了一个问题。https://rometools.github.io/如果我只是将lib添加到我的pom.xml并将其部署到AEM实例,然后调用一个应该使用该库的servlet,它就会失败...我无法调试到servlet。 我认为这是一个类加载问题,在罗马工具的网站上有一个将系统属性“rome.pluginmanager.useloadclass”设置为

  • 作为最新的Apache POI3.11,JAR不是bundle,让POI在OSGi中工作的最佳方式是什么? 我尝试了两种方法: 将JAR直接嵌入到唯一使用它们的包中 使用预包装为包的POI罐子 注意:至少还需要和,但它们已经是bundle了。 使用预包装的JAR,我尝试使用3.92。这还需要,所以我使用了预包装的,但这至少需要1.0版本,我的JVM/Felix OSGi将其宣传为“only”版本。

  • 我是OSGi的新手,很难将包包含到我的Maven项目中。 我使用mave-bundle-plugin创建了一个API包和一个实现包。在我的主要项目(一个Maven项目)中,我试图使用Felix框架从ServiceTracker获得已实现包的服务。当我最终尝试将获得的服务强制转换为正确的类型时,我会收到一个ClassCastException。 Maven使用以下清单文件创建了两个jar文件: 在我