【问题标题】:unable to start the bundle created using maven archetype in apache karaf无法启动在 apache karaf 中使用 maven 原型创建的包
【发布时间】:2016-01-30 19:10:21
【问题描述】:

我尝试使用 apache karaf 使用 karaf 开发人员指南中提到的 maven 原型创建 osgi 包。

mvn archetype:generate \-DarchetypeGroupId=org.apache.karaf.archetypes \-DarchetypeArtifactId=karaf-bundle-archetype \-DarchetypeVersion=4.0.0 \-DgroupId=com.mycompany \-DartifactId=TestBundle \-Dversion=1.0.0-SNAPSHOT \-Dpackage=com.mycompany.newpkg

所以我创建了一个目录 TestBundle,然后我在这里做了“mvn install”。因此在目标文件夹中创建了包(jar 文件)。当我在部署时复制此文件夹时,我看到它已安装,但在重新启动时,我在下面看到此问题

karaf@victoria>bundle:list | grep Test
396 | Installed   |  80 | 1.0.0.SNAPSHOT               | TestBundle Bundle
karaf@victoria>bundle:info 396

TestBundle Bundle (396)
-----------------------
karaf@victoria>bundle:restart 396
Error executing command: Error restarting bundles:
Unable to start bundle 396: The bundle "TestBundle_1.0.0.SNAPSHOT [396]"
    could not be resolved. Reason: Missing Constraint:
        Import-Package: org.osgi.framework; version="[1.8.0,2.0.0)"

我的 pom.xml 导入包只有一颗星。 *

Manifest-Version: 1.0
Bnd-LastModified: 1446200540685
Build-Jdk: 1.8.0_51
Bundle-Activator: com.mycompany.newpkg.Activator
Bundle-Description: TestBundle OSGi bundle project.
Bundle-ManifestVersion: 2
Bundle-Name: TestBundle Bundle
Bundle-SymbolicName: TestBundle
Bundle-Version: 1.0.0.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: com.mycompany.newpkg;version="1.0.0.SNAPSHOT";uses:="org
 .osgi.framework"
Import-Package: org.osgi.framework;version="[1.8,2)"
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))"
Tool: Bnd-2.4.1.201501161923

【问题讨论】:

  • 您能否添加指向您所指的“karaf 开发人员指南”的链接。您能否将捆绑包的 MANIFEST.MF 的内容添加到问题中。关于 POM <Import-Package>:“很少需要明确指定此标头。
  • link - 这是我找到 maven 原型的地方。
  • Manifest-Version: 1.0 Bnd-LastModified: 1446200540685 Build-Jdk: 1.8.0_51 Bundle-Activator: com.mycompany.newpkg.Activator Bundle-Description: TestBundle OSGi bundle 项目。 Bundle-ManifestVersion:2 Bundle-Name:TestBundle Bundle-SymbolicName:TestBundle Bundle-Version:1.0.0.SNAPSHOT 创建者:Apache Maven Bundle Plugin Export-Package:com.mycompany.newpkg;version="1.0.0。 SNAPSHOT";uses:="org .osgi.framework" Import-Package: org.osgi.framework;version="[1.8,2)" Require-Capability: osgi.ee;filter:="(&(osgi.ee =JavaSE)(version=1.5))" 工具:Bnd-2.4.1.201501161923
  • 您是否意识到在 cmets 中格式化是有限的?这就是我写“请将内容...添加到问题”的原因。请参阅问题标签下方的 edit 链接。
  • 对不起。将内容添加到问题中。

标签: maven osgi osgi-bundle karaf


【解决方案1】:

清单显示该捆绑包是针对(并期望在运行时)OSGi Core R6 框架(框架版本 1.8)编译的。您使用的 Karaf 版本是否支持 OSGi Core R6?

【讨论】:

  • 但是我如何以及在哪里可以找到 karaf 是否支持 OSGi Core R6 ?
  • 是的,Hargrave,你是对的,改变 pom.xml 中的 OSGi 版本有帮助。谢谢 ! :)
猜你喜欢
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 2011-12-09
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
相关资源
最近更新 更多