Tomcat и OSGi

Мне было интересно, можно ли встроить контейнер OSGi, например Karaf внутри экземпляра Tomcat. В соответствии с этот вопрос SO и некоторые другие, кажется, что это возможно, но я не могу найти каких-либо твердых подробностей о том, как это сделать или о том, остерегайтесь.

Итак:

  • Можно ли встроить контейнер OSGi внутри Tomcat, чтобы я мог быстро развернуть пакеты OSGi в любой точке этого контейнера без перезагрузки Tomcat?
  • Если ответ на № 1 выше "да", то какие системные службы/порты внедряют OSGi внутри Tomcat? Я спрашиваю, потому что я хотел бы развернуть OSGi на сервере Tomcat, размещенном на Java PaaS, где у меня нет прав администратора. И мне интересно, если, когда я попытаюсь развернуть встроенный контейнер OSGi в Tomcat, он попытается начать прослушивание портов или, возможно, начнет делать что-то в локальной файловой системе. Если это так, я, скорее всего, получу ошибки безопасности/разрешения.

Спасибо заранее!

Ответ 1

Можно ли встроить контейнер OSGi внутри Tomcat?

Да. Фактически, если вы загружаете Karaf и смотрите в <KARAF_HOME>/demos/web, вы найдете демонстрационный проект , который делает именно это.

какие системные службы/порты внедряют OSGi внутри Tomcat?

Это будет зависеть от того, что вы устанавливаете в нем и как его настроить. Вот несколько несколько старых (но IMHO stil соответствующих) обсуждений о портах по умолчанию и о том, как их настроить.

Ответ 2

Мы развертываем наше приложение таким же образом. Мы развернули karaf в tomcat и на weblogic с помощью сервлета. Причиной использования контейнера было преодоление ограничений среды, когда некоторые клиенты являются "оракулом" или "ibm" и хотят, чтобы все развертывания выполнялись на этих серверах.

Поскольку вы будете использовать мост сервлета, нет необходимости открывать новый порт для пересылки в http-трафик. У вас могут быть проблемы с консолью karaf, если этот порт заблокирован. Также я помню, что проблемы с запуском cxf из-за встроенного экземпляра причала запускаются на другом порту.

Помимо портов вам понадобится домашний каталог karaf с доступом для записи.