Мне было интересно, можно ли встраивать контейнер OSGi, например, Karaf внутри экземпляра Tomcat. Согласно this SO question и нескольким другим, кажется, что его возможно, но я не могу найти каких-либо твердых подробностей о том, как это сделать или о каких подводных камнях/остерегается.Tomcat и OSGi
Итак:
- Можно ли встроить OSGi контейнер внутри Tomcat, так что я могу горячее развертывание OSGi расслоений в любой точке в этот контейнер без необходимости перезагрузки Tomcat?
- Если ответ на № 1 выше «да», то какие системные службы/порты внедряют OSGi внутри Tomcat? Я спрашиваю, потому что я хотел бы развернуть OSGi на сервере Tomcat, размещенном на Java PaaS, где у меня нет прав администратора. И мне интересно, если, когда я попытаюсь развернуть встроенный контейнер OSGi в Tomcat, он попытается начать прослушивание портов или, возможно, начнет делать что-то в локальной файловой системе. Если это так, я, скорее всего, получу ошибки безопасности/разрешения.
Заранее благодарен!
http://angelozerr.wordpress.com/category/java/osgi/equinox/equinox-servletbridge/ довольно подробно объясняет, как это сделать. –
Thanks @ M.Deinum (+1) - интересно, что в статье упоминается, что они не могли этого сделать, потому что пытались развернуть CloudBees, который является «не-OSGi HTTP Tomcat». ** Я также пытаюсь развернуть на CloudBees! (Java PaaS, о котором я упоминал). ** Знаете ли вы, как Tomcat может включать/отключать OSGi? Еще раз спасибо! –
Не знаете, где они упоминают об этом. Но вы не можете развернуть tomcat как пакет OSGI, но наоборот (OSGi внутри tomcat) должен работать. Недостатком является то, что мост сервлетов довольно устарел (Servlet 2.4). –