【问题标题】:reference protocol support in KarafKaraf 中的参考协议支持
【发布时间】:2012-04-23 18:09:49
【问题描述】:

当我尝试在 Karaf 集成测试中使用 reference:file:/path/to.jar 作为捆绑 URL 时,出现“未知协议:引用”错误。 Karaf 邮件列表中提到了reference: URL,但我不清楚:

  1. 它们应该默认工作吗?

  2. 如果没有,我该如何启用它们?大概我需要一个合适的包来提供 URLHandlerService,但是哪一个呢?

【问题讨论】:

    标签: osgi apache-karaf


    【解决方案1】:
    1. Karaf 中的 URL 处理程序由 Pax-Url project 提供,我认为默认情况下不提供参考(主要用于测试支持)。

    2. 你可以通过maven找到pax-url-reference here

    【讨论】:

    • @Alexey 你接受了这个答案,所以我假设你得到了这个工作。我将mavenBundle("org.ops4j.pax.url", "pax-url-reference", "1.6.0") 添加到我的容器配置中,然后还添加了pax-url-commons 1.6.0pax-url-commons 1.6.0 以解决缺少的要求,但仍然收到错误java.net.MalformedURLException: Unknown protocol: reference:。有什么提示吗?我正在参加 Pax Exam 3.2 和 Karaf 2.3.2 btw。
    • @benjamin - pax-url-reference 包是否在您的参考包之前启动?如果不尝试类似:mavenBundle("org.ops4j.pax.url", "pax-url-reference", "1.6.0").startLevel(1); bundle("reference:...").startLevel(2);
    • @benjamin 将 -Djava.protocol.handler.pkgs=org.ops4j.pax.url 添加到 jvm 参数
    • 感谢您的帮助,非常感谢。不幸的是,我对你的建议不满意。我已经拥有 JVM 属性,并且捆绑启动级别配置也不起作用。由于我使用的是useDeployFolder(false),因此可能与测试被部署为一项功能有关吗? (将其变为 true 有它自己的一系列问题)。因为从错误信息来看,Karaf 不会安装完整的考试功能:org.apache.karaf.features.core - 2.3.2 | Error when installing feature exam: java.net.MalformedURLException: Unknown protocol: reference
    • This mailing list post 似乎支持我的猜想。我会尝试找到一种方法将这些捆绑包添加到系统启动中,然后可能会起作用。
    猜你喜欢
    • 1970-01-01
    • 2013-04-10
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多