我根据How to run Vaadin 7 applications in Karaf?创建了一个features.xml
所以我得到了这些线:
<feature name="vaadin-common" version="7.6.8">
<!-- preceding code -->
<bundle>wrap:mvn:com.yahoo.platform.yui/yuicompressor/2.4.8$Bundle-SymbolicName=com.yahoo.platform.yui.compressor&Bundle-Version=2.4.8</bundle>
<bundle>wrap:mvn:javax.validation/validation-api/1.0.0.GA$BundleSymbolicName=javax-validation-api&Bundle-Version=1.0.0.GA</bundle>
<bundle>wrap:mvn:com.google.appengine/appengine-api-1.0-sdk/1.7.7$BundleSymbolicName=com-google-appengine-api-1.0-sdk&Bundle-Version=1.7.7</bundle>
<!-- appending code -->
</feature>
当我做一个qazxsw poi一切安装,但只有qazxsw poi得到适当的包装
feature:install vaadin-common
捆绑标头。但对于其他两个,这不适用:
yuicompressor
我将Bundle-SymbolicName: com.yahoo.platform.yui.compressor
Bundle-Version: 2.4.8
的karaf@root()>bundle:list
1335│ Active │ 80 │ 2.4.8 │ com-yahoo-platform-yui-yuicompressor
1336│ Active │ 80 │ 1.7.7 │ wrap_file__home_mine_.m2_repository_com_google_appengine_appengine-api-1.0-sdk_1.7.7_appengine-api-1.0-sdk-1.7.7.jar_BundleSymbolicName_com.google.appengin
1337│ Active │ 80 │ 1.0.0.GA │ wrap_file__home_mine_.m2_repository_javax_validation_validation-api_1.0.0.GA_validation-api-1.0.0.GA.jar_BundleSymbolicName_javax.validation.validation-api
更改为不同的东西,并且更改不会影响标题。所以换行:根本不工作。
当我直接输入它(用Bundle-SymbolicName
替换yuicompressor
):
'&'
一切正常......
我试过了:
'&'
替换karaf@root()>bundle:install 'wrap:mvn:javax.validation/validation-api/1.0.0.GA$BundleSymbolicName=javax-validation-api&Bundle-Version=1.0.0.GA'
Bundle ID: 420
karaf@root()>bundle:list
ID │ State │ Lvl │ Version │ Name
420 │ Installed │ 80 │ 1.0.0.GA │ javax-validation-api
$BundleSymbolicName
/ $Bundle-SymbolicName
和两者Bundle-SymbolicName
和Bundle-Version
一起玩&
中我的假设是,&
在这里做(或不做)它的魔力。似乎根本无法识别参数。 <![CDATA[]]>
总是显示相同的结果。
我正在使用karaf-4.1.1,后者又坚持使用OSGi-R6。
好吧,我尝试使用karaf-4.0.7,它完美无缺。为什么不使用4.1.1版本?
最后我拉了插头:我删除了Pax URL并重新启动了karaf。有效。有点专业......
为了复制,我重置并部署了一个功能文件:
bundle:list
并且捆绑包已成功安装:
${karaf.home}/data
由于我删除了<!-- features.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<features name="javax-validation">
<feature name="javax-validation" version="2">
<!-- Bundle-SymbolicName=foo -->
<bundle><![CDATA[wrap:mvn:javax.validation/validation-api/1.0.0.GA$Bundle-SymbolicName=foo]]></bundle>
</feature>
</features>
,我的猜测是,我的问题是由一些缓存引起的。
所以我修改了karaf@root()>feature:install javax-validation
karaf@root()>bundle:list
ID │ State │ Lvl │ Version │ Name
59 │ Active │ 80 │ 0 │ foo
并再次部署:
${karaf.home}/data
和:
features.xml
哈!它就是!没变。
最后,我发现了<!-- features.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<features name="javax-validation">
<feature name="javax-validation" version="2">
<!-- Bundle-SymbolicName=bar -->
<bundle><![CDATA[wrap:mvn:javax.validation/validation-api/1.0.0.GA$Bundle-SymbolicName=bar]]></bundle>
</feature>
</features>
里面的karaf@root()>feature:install javax-validation
karaf@root()>bundle:list
ID │ State │ Lvl │ Version │ Name
60 │ Active │ 80 │ 0 │ foo
和这个validation-api-1.0.0.GA.jar
:
${karaf.home}/data/tmp
干杯!