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 с доступом для записи.