【问题标题】:Installing bundle from maven on Karaf Restart failing on Karaf 3.0.5在 Karaf 上从 maven 安装包重新启动在 Karaf 3.0.5 上失败
【发布时间】:2016-09-04 03:55:58
【问题描述】:

我想在 Karaf 重新启动时从 maven 安装一个包(如果尚未安装)。所以为了实现这一点,我在/etc/startup.properties 中添加了它,如下所示:-

# add here bundles you want to install while system startup, e.g. 
# joda-time/joda-time/2.9/joda-time-2.9.jar=10
mvn\:com.fasterxml.jackson.core/jackson-annotations/2.7.4 = 10

但是在尝试启动 karaf 时,我遇到了以下异常:-

jabongs-MacBook-Pro-4:apache-servicemix-6.1-2.0 debraj$ bin/servicemix
Please wait while Apache ServiceMix is starting...
Error installing bundle listed in startup.properties with url: mvn:com.fasterxml.jackson.core/jackson-annotations/2.7.4 and startlevel: 10
Exception in thread "main" java.lang.NullPointerException
    at org.apache.karaf.main.Main.destroy(Main.java:533)
    at org.apache.karaf.main.Main.main(Main.java:173)

当我在 Karaf 启动后尝试通过以下命令安装相同的包时,它可以正常安装:-

karaf@root>bundle:install mvn:com.fasterxml.jackson.core/jackson-annotations/2.7.4
Bundle ID: 237

有人可以帮我解决以下问题吗:-

  1. 为什么包安装在 Karaf 启动时失败?
  2. 我只在首次启动 Karaf 时看到错误。之后,我没有看到上述错误,也没有安装捆绑包。那么是不是 Karaf 仅在第一次启动时才尝试在 startup.properties 中安装捆绑包?
  3. 如果#2 的答案是肯定的,Karaf 是否还有其他地方可以放置捆绑包名称,以便 Karaf 每次在重新启动时尝试安装它(如果尚未安装)?

环境:-

  • Karaf 3.0.5
  • Apache Serviemix 6.1.0

【问题讨论】:

    标签: apache-karaf apache-servicemix


    【解决方案1】:

    mvn: url 解析器可能没有连接。尝试在没有 mvn: 的情况下添加它,并确保 jar 在 system/ 文件夹中。

    如果这是用于业务代码而不是容器/产品扩展类型代码,最好的办法是构建一个功能并将其添加到 etc/org.apache.karaf.features.cfg featuresBoot

    【讨论】:

    • 我已经按照你的建议做了。创建了一个 features.xml 并将其添加到 /etc/org.apache.karaf.features.cfgfeatureBoot 并且工作正常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 2021-01-14
    • 1970-01-01
    相关资源
    最近更新 更多