Osgi 对sun.misc的WebSocket捆绑依赖

Osgi 对sun.misc的WebSocket捆绑依赖,osgi,apache-felix,osgi-bundle,grizzly,Osgi,Apache Felix,Osgi Bundle,Grizzly,我正在尝试使用Grizzly Websockets捆绑包创建一个基于Websockets的应用程序。我在ApacheFelix中使用Bndtools完成这项工作 不幸的是,我似乎拥有所有需要的依赖项,但Grizzly捆绑包由于以下故障而无法加载: org.glassfish.grizzly.websockets-server-2.3.23Unable to resolve org.glassfish.grizzly.websockets-server [23](R 23.0): missing

我正在尝试使用Grizzly Websockets捆绑包创建一个基于Websockets的应用程序。我在ApacheFelix中使用Bndtools完成这项工作

不幸的是,我似乎拥有所有需要的依赖项,但Grizzly捆绑包由于以下故障而无法加载:

org.glassfish.grizzly.websockets-server-2.3.23Unable to resolve 
org.glassfish.grizzly.websockets-server [23](R 23.0): missing 
requirement [org.glassfish.grizzly.websockets-server [23](R 23.0)] 
osgi.wiring.package; (osgi.wiring.package=sun.misc) Unresolved 
requirements: [[org.glassfish.grizzly.websockets-server [23](R 23.0)] 
osgi.wiring.package; (osgi.wiring.package=sun.misc)]
我研究过这个失败,最初是为了寻找一个捆绑包,结果发现显然这是一种真正不需要的JVM库。我见过一些变通方法和解决方案,包括在conf/config.properties文件中添加一行:

org.osgi.framework.system.packages.extra=sun.misc
我知道这是一个危险的解决办法,而且有传言说这个问题有“更安全”的解决方案。它们都涉及对标记或config.properties文件进行更改

不幸的是,在Bndtools环境中,显然没有这样的标记或文件可供我编辑

或者,至少在我的Bndtools项目中找不到这些东西

在基于Bndtools的项目中,有没有办法解决这个“sun.misc”问题?我正在使用Bndtools存储库,我想知道我需要编辑哪些“bnd”文件,以及将哪些文件放入这些文件中


有人建议…

您需要将
-runsystempackages:sun.misc
添加到bnd/bndrun文件中。

最好的工具是

您只需在gradle.properties中更改PKG=sun.misc(或另一个包),然后运行gradlew build

它将生成bundle片段,您可以将其添加到类路径中。 然后,该捆绑包包含:

Manifest-Version: 1.0
Export-Package: sun.misc
Fragment-Host: system.bundle; extension:=framework
Bundle-ManifestVersion: 2
Bundle-License: public domain - http://unlicense.org/
Bundle-SymbolicName: com.diffplug.osgi.extension.sun.misc
Bundle-Version: 0.0.0

显然,对于这个版本的Felix(5.2),添加上面答案中描述的runproperties行是行不通的。此runsystempackages行不。。。