【问题标题】:Installing a feature in servicemix在 servicemix 中安装功能
【发布时间】:2013-10-25 16:14:34
【问题描述】:

我正在运行 Apache servicemix 4.5.2。我想安装一个功能,即一个 jar 文件。 我想要的功能是jtidy

pom依赖是:

<dependency>
    <groupId>jtidy</groupId>
    <artifactId>jtidy</artifactId>
    <version>4aug2000r7-dev</version>
</dependency>

存储库是

http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.jar

我知道命令 features:install webconsole,例如,但 jtidy 不在我的 features:list 中。我也尝试过使用 addurl 命令,但是没有用。 (addurl mvn:http://repo1.maven.org/maven2/jtidy/jtidy/4aug2000r7-dev) Karaf 文档建议使用 Features XML 模式添加特征描述符,但不幸的是链接已损坏。

要知道我所做的是下载 jtidy.jar 并将其复制到我的部署目录。它有效,但我认为这不是正确的方法。

有人知道如何在 servicemix 中正确安装 jtidy 吗?

谢谢!

【问题讨论】:

    标签: java maven apache-karaf apache-servicemix jtidy


    【解决方案1】:

    安装一个功能和安装一个单独的 JAR 或 OSGi 包是有区别的。

    一个特性是在一个 XML 文件中定义的。一个特性由许多捆绑在一起的包、配置等组成。查看http://karaf.apache.org/manual/latest-2.3.x/users-guide/provisioning.html 以了解有关 Karaf 功能的更多信息。

    在这种情况下,您希望将单个 JAR 安装到容器中。您可以使用命令 osgi:install 来执行此操作,然后是指向 JAR 的 URL(例如 mvn:jtidy/jtidy/4aug2000r7-dev)。

    但是,在您的情况下,还有一个复杂性。 jtidy 本身并不是一个 OSGi 包。添加必要的 OSGi 元数据的最简单方法是使用wrap: 协议自动将 OSGi 元数据添加到 JAR。

    所以,总结一下 - 在 Apache ServiceMix 中安装这个 jtidy 依赖项,您可以使用

    osgi:install wrap:mvn:jtidy/jtidy/4aug2000r7-dev

    【讨论】:

    • 感谢您的回答。顺便说一句,如果我想添加一个我自己开发的 jar,它在我的环境中是本地的(myJar.jar)呢?
    • 如果您使用 Maven 进行开发,通常的解决方案是构建工件,然后为您的工件使用相同类型的 URL (mvn:// )。但是,URL 可以是您真正想要的任何内容,因此您也可以使用 http://... 或 file:// 来指向工件。
    猜你喜欢
    • 2021-02-02
    • 2018-01-07
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    • 2017-06-15
    • 2014-12-01
    • 2017-12-14
    相关资源
    最近更新 更多