我们开始在一个项目中使用Apache Felix Karaf,并利用了Blueprint Services。
现在,我想使用Spring Dynamic Modules来访问高级DI功能和测试特性。问题是我还不知道如何让Spring DM2.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但是为了使用Blueprint服务,我需要Spring DM 2.x (至少根据Spring网站的说法,‘对于Blueprint Service RI,使用2.x+version。’)。
我看到了add features to Apache Felix是可能的,但据我所知,这需要在某个存储库上声明一个features.xml文件。
我的问题是,是否有一种更简单的方法,也是更集成的(通过Maven)
发布于 2010-10-20 18:27:47
好的,经过一些调查,我已经设法让这些捆绑包在Karaf上与Spring DM 2.0.0.M1一起工作。
我解决这个问题的方法是添加一个额外的功能集(参见http://karaf.apache.org/manual/2.2.5/users-guide/provisioning.html),方法是定义一个如下所示的功能xml描述符:
<?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用户的帮助下,我们能够摆脱这些堆栈跟踪。
https://stackoverflow.com/questions/3925405
复制相似问题