Osgi 无法使用PAX-URL';在Felix config.properties中具有自动启动捆绑包的s汇编协议

Osgi 无法使用PAX-URL';在Felix config.properties中具有自动启动捆绑包的s汇编协议,osgi,pax,Osgi,Pax,我正在尝试使用PAX-URL,这样我就可以在飞行中组装未打包的捆绑包 如果我将pax-url-assembly-1.2.1.jar放入autostart捆绑包中,然后键入 安装程序集:路径/到/my/文件夹 一切正常。问题是,我想使用>felix.auto.start.1=assembly:path/to/my/folder在配置文件中为felix提供这些文件夹 如果我这样做,我会得到一个“未知协议:程序集”异常 我尝试在级别1加载PAX-URL,并将所有其他包的默认开始级别设置为10。没用。我

我正在尝试使用PAX-URL,这样我就可以在飞行中组装未打包的捆绑包

如果我将pax-url-assembly-1.2.1.jar放入autostart捆绑包中,然后键入

安装程序集:路径/到/my/文件夹

一切正常。问题是,我想使用>felix.auto.start.1=assembly:path/to/my/folder在配置文件中为felix提供这些文件夹

如果我这样做,我会得到一个“未知协议:程序集”异常

我尝试在级别1加载PAX-URL,并将所有其他包的默认开始级别设置为10。没用。我认为是“系统包”本身在加载任何包之前读取配置,因此不理解“程序集”

我想我需要告诉Felix在Felix启动时加载PAX-URL

有什么想法吗?我全搞错了吗?:)


谢谢

尝试将PAX-URL放入ApacheFelix中的
bundle
文件夹,并使用
-Djava.protocol.handler.pkgs=org.ops4j.PAX.URL
选项启动它

这是一篇描述ApacheFelix在Eclipse中的开发的帖子

还有一件事! 如果您将声明性服务与maven SCR插件一起使用,pax url将找不到servicecomponents.xml,因为默认情况下,插件会将其直接放在目标中(与目标/类相反)。要使其工作,您必须在scr插件中添加一个配置节来更改输出目录,如下所示:

<plugin>
    <groupId>org.apache.felix</groupId>
    <artifactId>maven-scr-plugin</artifactId>
    <version>1.7.0</version>
    <executions>
        <execution>
            <id>generate-scr-scrdescriptor</id>
            <goals>
                <goal>scr</goal>
            </goals>
            <configuration>
                <!-- Without this, PAX-URL won't work -->
                <outputDirectory>target/classes</outputDirectory>
            </configuration>
        </execution>
    </executions>
</plugin>

org.apache.felix
maven scr插件
1.7.0
生成scr脚本
可控硅
目标/类别

这对我来说很有效,特别是提供的链接:在最后给你自己一个zip文件,然后对你的项目进行黑客攻击,直到它工作为止;)我不需要使用任何关于引导类路径的特殊方法。谢谢!!