【问题标题】:openorb and jdk conflict in OSGIOSGI 中的 openorb 和 jdk 冲突
【发布时间】:2011-09-21 10:13:14
【问题描述】:

我在 osgi 中使用 openorb 时遇到以下异常。
我正在使用 openorb-1.3.1.jar 和 jdk1.6。
我认为 jdk 中的 openorb-1.3.1.jar 和 rt.jar 都包含许多导致问题的重复项。
例如,由于 rt.jar 和 openorb-1.3.1.jar 中都存在 org.omg.CORBA.ORB 类,因此发生了以下错误。
请提出解决问题的正确方法。

例外是,

java.lang.LinkageError: 加载器 违反约束:加载程序(实例 之前发起的 加载具有名称的不同类型 “org/omg/CORBA/ORB”在 java.lang.ClassLoader.findBootstrapClass....

【问题讨论】:

    标签: java osgi corba classloader openorb


    【解决方案1】:

    如果您使用 karaf 作为您的 OSGi 容器。你可以编辑你的 karaf“jre.properties”,它应该在 /karaf/etc 中。删除openorb中已经存在的包

    【讨论】:

      【解决方案2】:

      可能 openorb 正在使用它自己的 org.omg.CORBA 包的内部副本,但是您自己的包——我认为它正在以某种方式调用 openorb——已经从系统包中导入了org.omg.CORBA(这意味着他们得到了那个包)来自 rt.jar)。

      如果没有更多信息,很难开出单一的治疗方法,但原则是确保 openorb 和所有其他捆绑包从同一位置加载 org.omg.CORBA。这意味着:

      • openorb 需要在其Import-Package 标头中包含org.omg.CORBA,以便它从rt.jar 而不是它自己的内部副本中获取该包;或者...
      • 您的捆绑包需要导入由 openorb 导出的 org.omg.CORBA 的副本...希望它使用一个版本导出它,例如1.0.0 所以你的包可以说Import-Package: org.omg.CORBA;version="[1.0.0,2.0.0)"

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-16
        • 1970-01-01
        • 2017-07-15
        • 1970-01-01
        • 2019-04-15
        • 2020-12-29
        • 2011-05-21
        相关资源
        最近更新 更多