2010-03-03 4 views
4

Я пытаюсь использовать JACORB из am OSGI-Bundle. Я читал о людях, у которых было много проблем с его запуском и запуском. Кто-нибудь из вас имеет какой-либо опыт с включением JaCORB в OSGi-Bundle?Использование JACORB в OSGI

Благодаря Moritz

ответ

3

CORBA обычно нужно создать много кода класса конкретного, и я сомневаюсь, что JACORB собирается сделать это в классе безопасного пути от пучка (так как он, несомненно, будет необходимости доступ к другим классам, чтобы это произошло).

Если вам действительно нужно это сделать, то добавив:

DynamicImport-Package: * 

расслоению даст JACORB полный доступ к (вывозимых) пучках. Обратите внимание, что это означает, что когда JACORB привязывается к вашей конкретной версии пакета, он не будет динамическим (т. Е. Он будет постоянно подключаться к вашей жизни в течение всего срока службы вашего пакета).

Возможно, вы захотите ознакомиться с удаленными службами OSGi; существует множество различных реализаций, которые предоставляют услуги по сети; например, Eclipse ECF или Apache CXF.

Если вам просто нужно позвонить клиенту через OSGi, тогда может быть лучше связать внутреннюю копию JACORB в вашем пакете (чтобы он увидел, что видит ваш пакет), а затем настроить путь к классу пакетов:

Bundle-ClassPath: .,jacorb.jar 

Таким образом, ваш клиент сможет вызывать на удаленную службу CORBA, но не (легко) входящие запросы. Обратите также внимание на то, что может существовать несколько одноэлементных ресурсов (например, порт IIOR), что может означать, что вы ограничены использованием этого трюка один раз для OSGi VM.

0

Вы пробовали использовать фрагмент системы. Мы столкнулись с этой проблемой, имея Jacorb как в пучке AND, так и в фрагменте системы. Это немного неортодоксально, но оно действительно работает.

  1. Создайте пакет (org.jacorb) и оберните все существующие банки jacorb. Выставить пакеты. Это значит, что вы можете оценить классы jacorb, если это необходимо.
  2. Создайте фрагмент, где хост-узел - system.host. Добавьте сюда все jacorb jars. Это так, когда JVM отправляется на создание ORB, он может успешно найти класс ORB, который обычно не был бы на вашем пути к классу, если вы не зависели от пакета jacorb.

Voila! Теперь все ваши плагины не нуждаются в зависимостях от jacorb, и вы используете jacorb, как всегда, со свойствами Java System.

Смежные вопросы