OSGI解析错误-缺少system.bundle

OSGI解析错误-缺少system.bundle,osgi,Osgi,我突然发现以下奇怪的分辨率错误: [ERROR] Resolution failed. Capabilities satisfying the following requirements could not be found: [<<INITIAL>>] ? osgi.identity: (osgi.identity=javafx-osgi) ? [javafx-osgi version=8.0.2] ? osgi.wiring.ho

我突然发现以下奇怪的分辨率错误:

[ERROR] Resolution failed. Capabilities satisfying the following requirements could not be found:
[<<INITIAL>>]
  ? osgi.identity: (osgi.identity=javafx-osgi)
      ? [javafx-osgi version=8.0.2]
          ? osgi.wiring.host: (osgi.wiring.host=system.bundle)
这是一个很小的演示程序,几乎没有依赖项。据我所知,我们的代码和任何外部依赖项都没有改变。但是这个问题在不同的开发机器上是可以重现的

什么会导致这样的解析错误

更新: 我们正在使用存储库中bndtools 4.x的最新开发快照。可能就是这个吗

更新#2: 根据要求,javafx-osgi-8.0.2.jar的清单:

Manifest-Version: 1.0
Export-Package: com.sun.javafx, com.sun.glass.ui, com.sun.javafx.anima
 tion, com.sun.javafx.applet, com.sun.javafx.application, com.sun.java
 fx.beans, com.sun.javafx.beans.event, com.sun.javafx.binding, com.sun
 .javafx.charts, com.sun.javafx.collections, com.sun.javafx.css, com.s
 un.javafx.css.converters, com.sun.javafx.css.parser, com.sun.javafx.c
 ursor, com.sun.javafx.effect, com.sun.javafx.embed, com.sun.javafx.ev
 ent, com.sun.javafx.font, com.sun.javafx.font.coretext, com.sun.javaf
 x.font.directwrite, com.sun.javafx.font.freetype, com.sun.javafx.font
 .t2k, com.sun.javafx.fxml, com.sun.javafx.fxml.builder, com.sun.javaf
 x.fxml.expression, com.sun.javafx.geom, com.sun.javafx.geom.transform
 , com.sun.javafx.geometry, com.sun.javafx.iio, com.sun.javafx.iio.bmp
 , com.sun.javafx.iio.common, com.sun.javafx.iio.gif, com.sun.javafx.i
 io.ios, com.sun.javafx.iio.jpeg, com.sun.javafx.iio.png, com.sun.java
 fx.image, com.sun.javafx.image.impl, com.sun.javafx.jmx, com.sun.java
 fx.logging, com.sun.javafx.media, com.sun.javafx.menu, com.sun.javafx
 .perf, com.sun.javafx.print, com.sun.javafx.property, com.sun.javafx.
 property.adapter, com.sun.javafx.robot, com.sun.javafx.robot.impl, co
 m.sun.javafx.runtime, com.sun.javafx.runtime.async, com.sun.javafx.ru
 ntime.eula, com.sun.javafx.scene, com.sun.javafx.scene.control, com.s
 un.javafx.scene.control.behavior, com.sun.javafx.scene.control.skin, 
 com.sun.javafx.scene.control.skin.caspian, com.sun.javafx.scene.contr
 ol.skin.caspian.images, com.sun.javafx.scene.control.skin.modena, com
 .sun.javafx.scene.control.skin.resources, com.sun.javafx.scene.input,
  com.sun.javafx.scene.layout, com.sun.javafx.scene.layout.region, com
 .sun.javafx.scene.paint, com.sun.javafx.scene.shape, com.sun.javafx.s
 cene.text, com.sun.javafx.scene.transform, com.sun.javafx.scene.trave
 rsal, com.sun.javafx.scene.web, com.sun.javafx.scene.web.behavior, co
 m.sun.javafx.scene.web.skin, com.sun.javafx.sg, com.sun.javafx.sg.pri
 sm, com.sun.javafx.sg.prism.web, com.sun.javafx.stage, com.sun.javafx
 .text, com.sun.javafx.tk, com.sun.javafx.tk.quantum, com.sun.javafx.u
 til, com.sun.javafx.webkit, com.sun.javafx.webkit.drt, com.sun.javafx
 .webkit.prism, com.sun.javafx.webkit.prism.resources, com.sun.javafx.
 webkit.prism.theme, com.sun.javafx.webkit.theme, javafx, javafx.anima
 tion, javafx.application, javafx.beans, javafx.beans.binding, javafx.
 beans.property, javafx.beans.property.adapter, javafx.beans.value, ja
 vafx.collections, javafx.collections.transformation, javafx.concurren
 t, javafx.css, javafx.embed, javafx.embed.swing, javafx.event, javafx
 .fxml, javafx.geometry, javafx.print, javafx.scene, javafx.scene.canv
 as, javafx.scene.chart, javafx.scene.control, javafx.scene.control.ce
 ll, javafx.scene.effect, javafx.scene.image, javafx.scene.input, java
 fx.scene.layout, javafx.scene.media, javafx.scene.paint, javafx.scene
 .shape, javafx.scene.text, javafx.scene.transform, javafx.scene.web, 
 javafx.stage, javafx.util, javafx.util.converter, com.sun.deploy.uito
 olkit.impl.fx
Fragment-Host: system.bundle; extension:=framework
Bundle-ManifestVersion: 2
Bundle-Name: JavaFX 8 OSGi extension bundle
Bundle-License: The Apache License, Version 2.0
Bundle-SymbolicName: javafx-osgi
Bundle-Version: 8.0.2
更新#3: 我认为JavaFXOSGi问题不是真正的问题。我扔掉了所有与FX相关的东西,结果出现了一个错误:“没有OSGi框架添加到运行路径”


这似乎是felix解析器中的一个错误:

  • 来自Bndtools bugtracker的见解:

  • Felix bugtracker:Felix 5.4.0和bndtools 3.4.0的旧版本

上面的费利克斯罚单已经公开了一年多,但似乎还没有对根本原因的确切理解


对于那些遇到相同障碍的人:我们最终切换到EclipseEquinox。

您确定Felix框架JAR在
index.xml
中可用吗?您能为bundle
javafx osgi
附加MANIFEST.MF的内容吗?@NeilBartlett我已经附加了清单。我还查看了index.xml,但不知道要查找什么。谢谢,MANIFEST.MF,它看起来不错(有点担心,您的所有导出都没有版本,但这是一个单独的讨论)。我确实需要查看index.xml。因为它很大,你可能需要上传到某个地方(GithubGist?)@NeilBartlett回购协议不是公开的。我上传了索引内容,很抱歉回复延迟。看起来您的存储库不包含Felix框架,
org.apache.Felix.Framework
。因此,您的
-runfw
指令是不匹配的。
Manifest-Version: 1.0
Export-Package: com.sun.javafx, com.sun.glass.ui, com.sun.javafx.anima
 tion, com.sun.javafx.applet, com.sun.javafx.application, com.sun.java
 fx.beans, com.sun.javafx.beans.event, com.sun.javafx.binding, com.sun
 .javafx.charts, com.sun.javafx.collections, com.sun.javafx.css, com.s
 un.javafx.css.converters, com.sun.javafx.css.parser, com.sun.javafx.c
 ursor, com.sun.javafx.effect, com.sun.javafx.embed, com.sun.javafx.ev
 ent, com.sun.javafx.font, com.sun.javafx.font.coretext, com.sun.javaf
 x.font.directwrite, com.sun.javafx.font.freetype, com.sun.javafx.font
 .t2k, com.sun.javafx.fxml, com.sun.javafx.fxml.builder, com.sun.javaf
 x.fxml.expression, com.sun.javafx.geom, com.sun.javafx.geom.transform
 , com.sun.javafx.geometry, com.sun.javafx.iio, com.sun.javafx.iio.bmp
 , com.sun.javafx.iio.common, com.sun.javafx.iio.gif, com.sun.javafx.i
 io.ios, com.sun.javafx.iio.jpeg, com.sun.javafx.iio.png, com.sun.java
 fx.image, com.sun.javafx.image.impl, com.sun.javafx.jmx, com.sun.java
 fx.logging, com.sun.javafx.media, com.sun.javafx.menu, com.sun.javafx
 .perf, com.sun.javafx.print, com.sun.javafx.property, com.sun.javafx.
 property.adapter, com.sun.javafx.robot, com.sun.javafx.robot.impl, co
 m.sun.javafx.runtime, com.sun.javafx.runtime.async, com.sun.javafx.ru
 ntime.eula, com.sun.javafx.scene, com.sun.javafx.scene.control, com.s
 un.javafx.scene.control.behavior, com.sun.javafx.scene.control.skin, 
 com.sun.javafx.scene.control.skin.caspian, com.sun.javafx.scene.contr
 ol.skin.caspian.images, com.sun.javafx.scene.control.skin.modena, com
 .sun.javafx.scene.control.skin.resources, com.sun.javafx.scene.input,
  com.sun.javafx.scene.layout, com.sun.javafx.scene.layout.region, com
 .sun.javafx.scene.paint, com.sun.javafx.scene.shape, com.sun.javafx.s
 cene.text, com.sun.javafx.scene.transform, com.sun.javafx.scene.trave
 rsal, com.sun.javafx.scene.web, com.sun.javafx.scene.web.behavior, co
 m.sun.javafx.scene.web.skin, com.sun.javafx.sg, com.sun.javafx.sg.pri
 sm, com.sun.javafx.sg.prism.web, com.sun.javafx.stage, com.sun.javafx
 .text, com.sun.javafx.tk, com.sun.javafx.tk.quantum, com.sun.javafx.u
 til, com.sun.javafx.webkit, com.sun.javafx.webkit.drt, com.sun.javafx
 .webkit.prism, com.sun.javafx.webkit.prism.resources, com.sun.javafx.
 webkit.prism.theme, com.sun.javafx.webkit.theme, javafx, javafx.anima
 tion, javafx.application, javafx.beans, javafx.beans.binding, javafx.
 beans.property, javafx.beans.property.adapter, javafx.beans.value, ja
 vafx.collections, javafx.collections.transformation, javafx.concurren
 t, javafx.css, javafx.embed, javafx.embed.swing, javafx.event, javafx
 .fxml, javafx.geometry, javafx.print, javafx.scene, javafx.scene.canv
 as, javafx.scene.chart, javafx.scene.control, javafx.scene.control.ce
 ll, javafx.scene.effect, javafx.scene.image, javafx.scene.input, java
 fx.scene.layout, javafx.scene.media, javafx.scene.paint, javafx.scene
 .shape, javafx.scene.text, javafx.scene.transform, javafx.scene.web, 
 javafx.stage, javafx.util, javafx.util.converter, com.sun.deploy.uito
 olkit.impl.fx
Fragment-Host: system.bundle; extension:=framework
Bundle-ManifestVersion: 2
Bundle-Name: JavaFX 8 OSGi extension bundle
Bundle-License: The Apache License, Version 2.0
Bundle-SymbolicName: javafx-osgi
Bundle-Version: 8.0.2