【问题标题】:Websockets Bundle Dependency on sun.miscwebsockets 捆绑对 sun.misc 的依赖
【发布时间】:2015-10-23 00:28:22
【问题描述】:

我正在尝试使用 Grizzly Websockets 包创建基于 Websockets 的应用程序。我正在使用 Bndtools 在 Apache Felix 中执行此操作。

不幸的是,我似乎拥有所有需要的依赖项,但由于以下故障,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)]

我研究过这个失败,本来是想找一个bundle,结果发现这显然是某种JVM库,真的不需要。我已经看到了涉及在 conf/config.properties 文件中添加一行的变通方法和解决方案:

org.osgi.framework.system.packages.extra=sun.misc

我知道这是一种危险的解决方法,并且有传言说可以“更安全”地解决这个问题。它们都涉及对标签或 config.properties 文件进行更改。

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

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

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

请高人指教……

【问题讨论】:

    标签: osgi apache-felix osgi-bundle grizzly


    【解决方案1】:

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

    【讨论】:

    • 显然,对于这个版本的 Felix (5.2),添加上面答案中描述的 runproperties 行不起作用。这个 runsystempackages 行确实...
    【解决方案2】:

    最好的工具是https://github.com/diffplug/osgiX

    您只需在 gradle.properties 中更改 PKG=sun.misc(或其他包)并运行 gradlew build。

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

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 2015-10-04
      • 1970-01-01
      • 2012-11-01
      • 2022-01-23
      相关资源
      最近更新 更多