7

我有一个简单的问题。我按照本教程创建了一个 HelloWorld osgi 包。如何使用 apache Karaf安装和启动这个包?如何使用 osgi:install 命令引用捆绑包?

谢谢你。

4

3 回答 3

6

您可以将捆绑包放入“部署”目录,Karaf 会注意到并安装它。

于 2012-07-09T11:39:17.697 回答
5

好的,这是另一个问题,但这里是:

您几乎走在正确的轨道上,我已经测试了您链接到的 Karaf 开发人员指南中的那个(第二个mvn 调用)。文档不太正确,我需要更改两件事:

  • 版本已关闭,2.2.5 确实有效(在我的机器上),将其更改为 2.2.8 似乎有帮助。
  • 包名称是 com.mycompany.package。由于 package 是一个关键字,因此无法编译,因此我将其更改为 com.mycompany.bundle。

所以我的原型命令是:

mvn archetype:generate \
-DarchetypeGroupId=org.apache.karaf.archetypes \
-DarchetypeArtifactId=karaf-bundle-archetype \
-DarchetypeVersion=2.2.8 \
-DgroupId=com.mycompany \
-DartifactId=com.mycompany.bundle \
-Dversion=1.0-SNAPSHOT \
-Dpackage=com.mycompany.bundle

然后进入新建的项目文件夹:com.mycompany.bundle:

cd com.mycompany.bundle

和一个 mvn 安装:

mvn install

然后在'target/'文件夹中有一个jar文件,你可以像我之前说的那样将它安装到Karaf安装中。

在 Eclipse 中创建包

  • 新建 -> 插件项目 -> 选择名称 -> 检查参数 -> 如果您愿意,可以使用模板。

  • 选择您的项目 -> 导出 -> 插件/片段 -> 选择一个文件夹

有你的jar文件。

于 2012-07-10T09:24:19.880 回答
1

弗兰克的回答很快帮助了我:
我用这个原型创建了一个包:


    mvn archetype:generate \
    -DarchetypeGroupId=org.apache.karaf.archetypes \
    -DarchetypeArtifactId=karaf-bundle-archetype \
    -DarchetypeVersion=2.2.8 \
    -DgroupId=com.mycompany \
    -DartifactId=com.mycompany.bundle \
    -Dversion=1.0-SNAPSHOT \
    -Dpackage=com.mycompany.bundle
然后我做了一个mvn eclipse:eclipsemvn install。将生成的 jar 复制到我正在运行的 JBoss Fuse 服务器的部署目录后,它会打印“Starting the bundle”。:-)

于 2014-05-25T19:06:46.273 回答