2011-01-12 2 views
4

профи! Похож на основной вопрос, но я просто не могу найти то, что ищу.web.xml в контейнере OSGi

У меня есть Equinox и вы хотите запустить Spring в нем (bootstraped in Servlet). Я не могу использовать dm-server, и не могу использовать http-bridge, просто автономный Equinox. С другой стороны, расширение расширения серфинга plugin.xml http недостаточно, так как мне нужен полностью выдутый web.xml для загрузки Spring.

Где я должен копать?

Спасибо! Baruch.

ответ

6

Для поддержки файла «традиционный» (aka legacy) web.xml для развертывания webapp вам нужна реализация спецификации OSGi Web Applications, входящей в спецификацию OSGi R4.2 Enterprise. Это позволит вам развернуть «Пакеты веб-приложений» (WAB) или даже старые старые файлы WAR.

Существуют реализации этого контейнера в проектах Eclipse Gemini и Apache Aries. Обратите внимание, что найденный в Eclipse Gemini также найден в Eclipse Virgo (новое имя для сервера dm). Вы можете обнаружить, что использование Девы даст вам более чистый «из коробки» опыт, а не сборку компонентов самостоятельно. И снова я полностью понимаю, если он также обеспечивает намного больше, чем вы действительно хотите!

Альтернативой этому является переход от web.xml и программная регистрация сервлетов с OSGi HttpService. Это должно быть намного более легким, но я не знаю, будет ли он работать для «начальной загрузки» - довольно неопределенное требование.

+0

Нейл, спасибо за ответ! Под «bootstrapping Spring» я имею в виду использование listener и context-param, как описано здесь: http: //static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/beans.html#context- create Поддерживает ли HttpService прослушиватели и контекстные параметры? – JBaruch

0

Или вы можете использовать комплект Tomcat OSGi, который позволит вам загружать пакеты как военные файлы. Проблема в том, что имя вашего веб-узла должно заканчиваться на «.war», а все, что стоит перед этим суффиксом, - это имя приложения. Так что, если ваше имя пакета - myapp.war, вы подключаетесь к нему с http://your.server.cc/myapp (и насколько я знаю, это невозможно изменить)