Installation 包装协议:未处理的参数(features.xml)

Installation 包装协议:未处理的参数(features.xml),installation,bundle,apache-karaf,Installation,Bundle,Apache 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&amp;Bu

我根据创建了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&amp;Bundle-Version=2.4.8</bundle>
    <bundle>wrap:mvn:javax.validation/validation-api/1.0.0.GA$BundleSymbolicName=javax-validation-api&amp;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&amp;Bundle-Version=1.7.7</bundle>
    <!-- appending code -->
</feature>
捆绑头。但对于其他两个,这不适用:

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
我将yuicompressor的Bundle SymbolicName更改为不同的名称,该更改不会影响标题。所以包装:根本不起作用

当我直接键入时,替换为“&;”带“&”:

一切都很好

我试过:

用$Bundle SymbolicName替换$Bundle SymbolicName

跳过捆绑包符号名称/捆绑包版本以及两者

与&;及&

将URI封装到

我的假设是,这有或没有发挥它的魔力。似乎根本无法识别这些参数。捆绑:列表始终显示相同的结果

我使用的是karaf-4.1.1,它反过来又支持OSGi-R6


好的,我试过使用karaf-4.0.7,效果非常好。为什么不使用版本4.1.1?

最后我拔掉了插头:我删除了${karaf.home}/data并重新启动了karaf。成功了。有点专业

为了复制,我重置并部署了一个功能文件:

<!-- 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.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.home}/data/tmp中找到了一个validation-api-1.0.0.GA.jar,其中包含以下MANIFEST.MF:

干杯

<!-- 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
<!-- 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
    Manifest-Version: 1.0
    Archiver-Version: Plexus Archiver
    Bnd-LastModified: 1494796142136
    Build-Jdk: 1.5.0_20
    Built-By: hardy
    Bundle-ManifestVersion: 2
    Bundle-Name: foo
    Bundle-SymbolicName: foo
    Bundle-Version: 0
    Created-By: 1.8.0_131 (Oracle Corporation)
    Export-Package: tl.dr*
    Generated-By-Ops4j-Pax-From: wrap:file:/home/johndoe/.m2/repository/javax
     /validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar$Bundle-
     SymbolicName=foo
    Originally-Created-By: Apache Maven
    Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))"
    Tool: Bnd-2.3.0.201405100607