【问题标题】:bundle will not start when bouncy castle is imported导入充气城堡时捆绑不会启动
【发布时间】:2014-12-24 18:55:38
【问题描述】:

我正在尝试将充气城堡作为服务提供商添加到我在 apache karaf 上运行的 java 产品中。 当我尝试启动导入充气城堡的捆绑包时,我收到一条错误消息

java.lang.Exception:无法在功能服务器-docs-1.0.0-SNAPSHOT 中启动捆绑 mvn:com.xxx.yyy.zzz/docsservice/1.0.0-SNAPSHOT/war:未解决的约束捆绑文档 [245]:无法解析 245.0:缺少要求 [245.0] osgi.wiring.package; (&(osgi.wiring.package=org.bouncycastle.jce.provider)(版本>=1.51.0)) 在 org.apache.karaf.features.internal.FeaturesServiceImpl.startBundle(FeaturesServiceImpl.java:472)

在 pom 文件中,我导入了包 org.bouncycastle.jce.provider 并添加了 bouncycastle 作为依赖项。 此外,我进行了此页面上描述的所有更改, http://karaf.apache.org/manual/latest/users-guide/security.html,见下文

  1. 我将提供程序 jar 放在 lib/ext 中
  2. 我修改了 etc/config.properties 配置文件,添加了以下属性 org.apache.karaf.security.providers = xxx,yyy

org.apache.karaf.security.providers = org.bouncycastle.jce.provider.BouncyCastleProvider

  1. 我从系统捆绑包中提供了对这些提供程序的类的访问权限,以便所有捆绑包都可以访问这些。我通过修改同一配置文件中的 org.osgi.framework.bootdelegation 属性来做到这一点:

org.osgi.framework.bootdelegation = ...,org.bouncycastle*

  1. 在某个论坛上我发现了另一个建议,所以我修改了 *org.osgi.framework.system.packages.extra = * 也在 config.properties 中,我在这里添加了从 bouncycastle 导出的包

尽管如此,我还是无法成功加载捆绑包。我查看了 karaf 加载的所有包,但没有一个是在导出充气城堡包。 我在这里想念什么?如何使捆绑包启动?

【问题讨论】:

    标签: maven osgi bouncycastle apache-karaf


    【解决方案1】:

    通过将包添加到引导委托,您可以使其像 java.* 包一样可用。对于这些,您不需要 Import-Package。所以一种方法是在你的包中删除它的 Import-Package。如果您可以在没有启动委托的情况下工作,您应该探索一下。

    请尝试删除引导委托并将包添加到

    org.osgi.framework.system.packages.extra = org.bouncycastle.jce.provider
    

    这会将包添加到系统捆绑包导出的包中。然后应该将其连接到您的捆绑包。

    【讨论】:

    • 我已经将 org.bouncycastle.jce.provider 添加到 packages.extra 中(见我上面的 4 号)。从 pom 文件的导入部分中删除 org.bouncycastle.jce.provider 解决了我的问题。谢谢!我还有一个问题。我不明白您所说的“然后应该将其连接到您的捆绑包”是什么意思。你能详细说明一下吗?
    • 当一个包从已安装状态变为已解决状态时,OSGi 框架会连接包的类加载器。 Import-Package 中的所有包都将连接到导出匹配包的包。仅当此操作成功时,捆绑包才可用。
    猜你喜欢
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多