- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Apache Felix 6.0.1 时,我在初始化 OSGi 框架时遇到以下错误:
ERROR: Error parsing system bundle statement.
org.osgi.framework.BundleException: Exported package names cannot be zero length.
at org.apache.felix.framework.util.manifestparser.ManifestParser.normalizeExportClauses(ManifestParser.java:865)
at org.apache.felix.framework.util.manifestparser.ManifestParser.<init>(ManifestParser.java:217)
at org.apache.felix.framework.ExtensionManager$ExtensionManagerRevision.update(ExtensionManager.java:977)
at org.apache.felix.framework.ExtensionManager$ExtensionManagerRevision.access$000(ExtensionManager.java:885)
at org.apache.felix.framework.ExtensionManager.updateRevision(ExtensionManager.java:378)
at org.apache.felix.framework.Felix.init(Felix.java:744)
at org.apache.felix.framework.Felix.init(Felix.java:637)
我在 Apache Felix 5.x 中没有遇到此错误
除了我的可执行 JAR(它根本不是 OSGi 包)之外,我找不到任何具有空包名称声明的 JAR。
为什么我会收到此错误?
更新
问题似乎与 Maven Bundle Plugin v4.1.0 的捆绑目标有关
在一个带有 bundle 的启动 JAR 中,我有:
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<versions>
<module.b.osgi.version.clean>${project.version}</module.b.osgi.version.clean>
</versions>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>cleanVersions</goal>
</goals>
</execution>
</executions>
</plugin>
在资源过滤设置为 true 的属性文件中,我有:
org.osgi.framework.system.packages.extra=${module-b.packages}
module-b.packages=${module-a.packages}, \
org.mymodule.b;version="${module.b.osgi.version.clean}", \
${foo-${foo.specification.version}}
在生成的目标/类目录中,我有预期的:
org.osgi.framework.system.packages.extra=${module-b.packages}
module-b.packages=${module-a.packages}, \
org.mymodule.b;version="0.14.0.SNAPSHOT", \
${foo-${foo.specification.version}}
但是在 JAR 中它突然看起来像这样:
org.osgi.framework.system.packages.extra=${module-b.packages}
module-b.packages=${module-a.packages}, \
org.mymodule.b;version="0.14.0.SNAPSHOT", \
不知何故 ${foo-${foo.specation.version}}
被剥离为空字符串!
更新2
由于这种情况发生在启动代码中,我当前的解决方法是将打包类型更改回 jar。 OSGi 干净版本仍然会被替换,但 Manifest 文件不再包含任何 OSGi 条目。
最佳答案
我认为这是 Maven Bundle 插件中的回归错误。
我在这里提交了一个问题:https://issues.apache.org/jira/browse/FELIX-5980
关于java - Apache 菲利克斯 6.0.1 : BundleException on init,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53253546/
Apache Felix 有“扩展包”的概念。这似乎是一个有助于系统 bundle 的 bundle 。还有一个特殊的 URL“felix://extensions/”正在为它们注册。 我什么时候需要
使用 Apache Felix 6.0.1 时,我在初始化 OSGi 框架时遇到以下错误: ERROR: Error parsing system bundle statement. org.osgi
Apache Felix 的 SCR 允许声明(通过注释或 XML)组件,然后将这些组件实例化、连接到其依赖项并注册为 OSGi 服务。 也可以跳过服务注册部分,只让 SCR 创建组件(通过指定 @s
在 Windows 中,我想将 felix 的包缓存位置设置为 %TEMP%/myApp。据我所知,采用 org.osgi.framework.storage 的 configurations.pro
在我的主机应用程序中,我尝试实现一个简单的 pushService,它应用于将名为 Vehicle 的类的实例传输到 OSGiworld,通过提供set和get方法。为了能够使用我的服务将服务接口(i
对于 Felix OSGi,使用 Load 目录中的 JAR 自动加载包非常简单;从 Felix 停止和卸载 bundle 效果很好。但是,如果您想在 Tomcat/Java 容器仍在运行时从 Loa
我是一名优秀的程序员,十分优秀!