конфликты openorb и jdk в OSGI - PullRequest
0 голосов
/ 23 июня 2011

Я получаю следующее исключение, используя openorb в osgi.
Я использую openorb-1.3.1.jar и jdk1.6.
Я думаю, что и openorb-1.3.1.jar, и rt.jar в jdk содержит много дубликатов, что вызывает проблему.
Например, ниже приведена ошибка, потому что класс org.omg.CORBA.ORB присутствует как в rt.jar, так и в openorb-1.3.1.jar.
Пожалуйста, предложите правильный способ решения проблемы.

Исключение составляет,

java.lang.LinkageError: нарушение ограничения загрузчика: loader (экземпляр ранее инициированной загрузкидля другого типа с именем «org / omg / CORBA / ORB» в java.lang.ClassLoader.findBootstrapClass ....

Ответы [ 2 ]

1 голос
/ 28 июня 2011

Возможно, openorb использует свою собственную внутреннюю копию пакета org.omg.CORBA, но ваши собственные пакеты, которые, как я полагаю, каким-то образом вызывают openorb, импортировали org.omg.CORBA из системного пакета (т.е. от rt.jar).

Без дополнительной информации сложно прописать одно лекарство, но принцип заключается в том, чтобы openorb и все другие пакеты загружали org.omg.CORBA из одного места. Это означает, что ЛИБО:

  • openorb должен включить org.omg.CORBA в свой заголовок Import-Package, чтобы он получал этот пакет из rt.jar вместо собственной внутренней копии; ИЛИ ...
  • ваши пакеты должны импортировать копию org.omg.CORBA, экспортированную openorb ... надеюсь, она экспортирует ее с версией, например, 1.0.0, чтобы ваши связки могли сказать Import-Package: org.omg.CORBA;version="[1.0.0,2.0.0)"
0 голосов
/ 06 декабря 2013

Если вы используете karaf в качестве контейнера OSGi.Вы можете отредактировать ваш karaf "jre.properties", который должен быть в / karaf / etc.Удалить пакет, который уже находится в openorb

...