【问题标题】:How to get Spring Dynamic Modules 2.x to work on Apache Felix Karaf?如何让 Spring Dynamic Modules 2.x 在 Apache Felix Karaf 上工作?
【发布时间】:2011-04-24 22:26:13
【问题描述】:

我们开始在一个项目中使用 Apache Felix Karaf,并使用 Blueprint Services。

现在,我想使用 Spring Dynamic Modules 来访问高级 DI 功能和测试功能。问题是我无法弄清楚如何让 Spring DM 2.x 在 Felix 上运行。

已安装 spring 和 spring-dm 功能:

karaf@root> features:list
State         Version       Name       Repository
[installed  ] [2.5.6.SEC01] spring     karaf-1.6.0
[installed  ] [1.2.0      ] spring-dm  karaf-1.6.0
[uninstalled] [1.6.0      ] wrapper    karaf-1.6.0
[uninstalled] [1.6.0      ] obr        karaf-1.6.0
[installed  ] [1.6.0      ] http       karaf-1.6.0
[uninstalled] [1.6.0      ] war        karaf-1.6.0
[uninstalled] [1.6.0      ] webconsole karaf-1.6.0
[installed  ] [1.6.0      ] ssh        karaf-1.6.0
[installed  ] [1.6.0      ] management karaf-1.6.0

但是为了使用蓝图服务,我需要 Spring DM 2.x(至少根据 Spring 网站,'对于蓝图服务 RI,请使用 2.x+版本。')。

我看到可以add features to Apache Felix,但据我了解,这需要在某个存储库上声明一个 features.xml 文件。

我的问题是,是否有更简单的方法可以走,它也将更加集成(通过例如 Maven)

【问题讨论】:

    标签: osgi springsource-dm-server apache-karaf apache-felix


    【解决方案1】:

    好的,经过一番调查,我设法让这些捆绑包在 Karaf 上与 Spring DM 2.0.0.M1 一起使用。

    我解决它的方法是通过像这样定义一个特性 xml 描述符来添加一个额外的特性集(参见http://karaf.apache.org/manual/2.2.5/users-guide/provisioning.html):

    <?xml version="1.0" encoding="UTF-8"?>
      <features name="spring-features">
        <feature name="spring-dm-2" version="2.0.0.M1">
            <feature version="3.0.3.RELEASE">spring</feature>
            <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.cglib/2.1_3_6</bundle>
            <bundle>mvn:org.springframework.osgi/spring-osgi-io/2.0.0.M1</bundle>
            <bundle>mvn:org.springframework.osgi/spring-osgi-core/2.0.0.M1</bundle>
            <bundle>mvn:org.springframework.osgi/spring-osgi-extender/2.0.0.M1</bundle>
            <bundle>mvn:org.springframework.osgi/spring-osgi-annotation/2.0.0.M1</bundle>
            <bundle>mvn:org.apache.karaf.deployer/org.apache.karaf.deployer.spring/2.1.0</bundle>
        </feature>
      </features>
    

    然后通过 Karaf shell 像这样加载它

    features:addurl /path/to/spring-dm-feature.xml
    features:install spring-dm-2
    

    请注意,这可行,但带有一些丑陋的堆栈跟踪——我希望在 Karaf 用户列表中的人/Spring 人的帮助下,我们能够摆脱这些。

    【讨论】:

    • 您答案中的链接已损坏。请删除它或用一个工作的替换它。
    猜你喜欢
    • 1970-01-01
    • 2015-04-28
    • 2016-07-16
    • 2020-03-14
    • 1970-01-01
    • 2014-03-29
    • 2010-12-09
    • 2016-11-21
    相关资源
    最近更新 更多