使用从 OSGi 包中的库为 Kura 创建的现有插件项目

Posted

技术标签:

【中文标题】使用从 OSGi 包中的库为 Kura 创建的现有插件项目【英文标题】:Using existing plug in project created from library in OSGi bundle for Kura 【发布时间】:2017-04-29 13:32:27 【问题描述】:

我正在创建一个 OSGi 包,它将在 Kura(目标平台:Kura 目标平台 Equinox 3.8.1)下,在 Raspberry Pi 2 模型 B 上执行。

程序应该读取在 XBee 上接收到的数据,我们想使用一个库:https://github.com/andrewrapp/xbee-api

我在Eclipse 下创建了一个新插件项目,“来自现有 JAR 存档的插件”来自上述站点的 JAR 文件。

我尝试在项目的 MANIFEST.FM → 依赖项中将新插件设置为“必需插件”,但这不起作用 (java.lang.ClassNotFoundException)

我尝试在包含该库的项目中设置一个新文件夹,但它不起作用。

有人问了类似的问题,但我不明白答案,因为它们不够详细 (Using an external java library in OSGI bundle)。

【问题讨论】:

【参考方案1】:

如果您只在捆绑包中使用 XBee API,您可能只需将 Jar 文件嵌入捆绑包中即可。我认为这个过程很好地概括了here。

【讨论】:

【参考方案2】:

我建议不要让非 OSGi JAR 文件支持 OSGi 或嵌入它,而是寻找一个支持 OSGi 的 ZigBee 包。

我将从zigbee4OSGi project 开始。如果这不起作用,那么 prosyst 也有一个捆绑包,但它似乎不是免费的。

我找到了ZigBee binding at openhab。这可能会帮助您设置项目。我认为他们使用的是您正在寻找的同一个库。

【讨论】:

补充信息:Kura 在 RPi 2B 上运行 通过阅读您建议的网站上的论坛,这不适合 rpi AFAIK XBee != ZigBee。 Xbee 仅使用 ZigBee 作为传输层协议,而不是应用协议。因此,ZigBee 库(在应用程序级别上工作)不会与 XBee 模块“交谈”。

以上是关于使用从 OSGi 包中的库为 Kura 创建的现有插件项目的主要内容,如果未能解决你的问题,请参考以下文章

第一章:Eclipse kura的介绍

OSGi 包中的 Websphere 8.5 + CXF。是不是可以?

OSGi 应用程序内的 REST 客户端

OSGi:导出一个包而不导出同一个包中的几个类

Linux 中对应的库为 Visual Studio 中的 /MTd 是啥?

在 OSGi 包中添加第三方 Maven 依赖项的最佳方法