OSGI中的java openorb和jdk冲突
我在osgi中使用openorb获得以下异常
我正在使用openorb-1.3.1。jar和jdk1。6.
我认为openorb-1.3.1。jdk中的jar和rt.jar包含许多重复项,这导致了问题
例如,下面的错误发生是因为org。天啊。科尔巴。ORB类在rt.jar和openorb-1.3.1中都有。罐子
请提出解决问题的正确方法
例外情况是
java.lang.LinkageError: loader constraint violation: loader (instance of previosly initiated loading for a different type with name "org/omg/CORBA/ORB" at java.lang.ClassLoader.findBootstrapClass....
# 1 楼答案
如果您使用karaf作为OSGi容器。您可以编辑karaf“jre.properties”,它应该在/karaf/etc中。删除已经在openorb中的包
# 2 楼答案
可能openorb正在使用它自己的
org.omg.CORBA
包的内部副本,但是我认为您自己的包以某种方式调用openorb,已经从系统包中导入了org.omg.CORBA
(这意味着它们从rt.jar获得了一个)如果没有更多的信息,很难开出单一治疗方案,但原则是确保openorb和所有其他捆绑包从同一位置加载
org.omg.CORBA
。这意味着:Import-Package
头中包含org.omg.CORBA
,这样它就可以从rt.jar而不是它自己的内部副本获取该包;或者李>org.omg.CORBA
的副本。。。希望它能以1.0.0这样的版本导出它,这样您的bundle就可以说Import-Package: org.omg.CORBA;version="[1.0.0,2.0.0)"