当前位置: 首页 > 知识库问答 >
问题:

Weld-osgi-bundle-2.2.10.Final无法解析sun.misc

孙永思
2023-03-14

我试图将weld-osgi-bundle安装到apache felix上,却得到了这个异常-

org.osgi.framework.BundleException: Unresolved constraint in bundle org.jboss.weld.osgi-bundle [15]: Unable to resolve 15.0: missing requirement [15.0] osgi.wiring.package; (osgi.wiring.package=sun.misc)
    at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4097)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2114)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:977)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:964)

我知道的唯一方法就是把这个放在常量里。Felix config的FRAMEWORK _ system packages as JDK提供了这个包。大概是这样的:

String SYSTEM_PACKAGES = "sun.misc";
configMap.put(Constants.FRAMEWORK_SYSTEMPACKAGES, SYSTEM_PACKAGES);

但是,如果我按照这种方式,我将不得不导出所有使用的javaxetc包。如何解决这样的问题?我试图用sun.misc找到osgi捆绑包,但不能。

共有1个答案

卢阳成
2023-03-14

FRAMEWORK_SYSTEMPACKAGES替换为FRAMEWORK_SYSTEMPACKAGES_EXTRA。这会附加到系统包导出,而不是覆盖它们。

 类似资料:
  • 执行顺序 执行流程概括: 下载 bundle --> 根据 bundle 注释头判断 framework 环境 --> 初始化 frameowrk --> 执行 bundle 注释头 构建好的 Rax Bundle 会在头部第一行添加注释内容,指定容器所需启动的 Framework。 注释头推荐放在 Bundle 的第一行,注释头之前不能有空格和换行以外的内容。 // { "framework":

  • 问题内容: 在我的AEM项目的代码中看似无关紧要的更改之后,我的捆绑软件无法解决。检查日志后,我可以看到出现以下错误。 该项目在本地编译得很好,并且只有在容器尝试解决该捆绑包后,该问题才会出现。 我没有在任何更改中添加任何显式依赖项。项目对象模型与以前相同。顾名思义,这是一个核心Java软件包,因此我希望它会被System软件包公开。 我正在运行AEM支持的JDK 7,所以不要指望它与JVM兼容性

  • 我有一个问题,我似乎无法独自解决。如果有一个OSGI捆绑包,它使用blueprint实例化应该部署到Karaf 3.0.0的对象。问题是,ClassNotFoundExceptions一直困扰着我,尽管相应的jar都位于捆绑包jar中。这是我的pom.xml: 这是我的一个blueprint xml文件(该文件导致ClassNotFoundException): 最后,这是我在尝试启动捆绑包时收到

  • 我获得了一个jar文件,它已经打包为OSGi包(在其manifest.mf中包含Bundle-Name和其他类似属性),我希望将其作为包安装。此jar从导入包和。RabbitMQ客户机2.7.1发行版还包含,所以我认为它也是必需的。 我检查了这些公用罐子的清单,发现它们似乎不是打包成包的。也就是说,它们的清单没有任何标准束属性。 我的具体问题是:如果我将安装为一个捆绑包,那么访问它需要从commo

  • 我试图在EclipseIDE中运行Equinox的区域有向图束。当我在OSGi命令提示符下使用start命令运行相关的bundle时,我收到一个错误,表示无法解析该bundle。原因:缺少约束:导入包:org.osgi.framework.hooks。捆version=“1.0.0”。为了找出框架中的现有版本,我尝试了命令p org.osgi.framework.hooks.bundle。结果显示

  • 假设我正在创建一个OSGI包,它将部署在其他包的生态系统中。我正在处理的包需要一些其他包,但它们不在此生态系统中加载/导出,并且我无法控制生态系统导出什么。在这种情况下,我可以将这些bundle放入某个目录(比如'lib'),该目录成为bundle的一部分。还应该从Bundle-Classpath引用这些包,因此可以加载它们。 这是一个正确的Bundle-Classpath用例吗? 这些附加包是否