Как запустить Jetty как пакет OSGI с поддержкой JSP?

#jsp #jetty #osgi

#jsp #jetty #osgi

Вопрос:

Я запускаю Jetty 9.2 как пакет osgi, используя Felix framework.В командной строке Apache Felix был запущен как

 java -Djetty.home=C:/osgiJars/jetty-osgi-boot-9.2.0.M0/jettyhome -jar bin/felix.jar
 

Мой jetty home выглядит следующим образом

введите описание изображения здесь

После запуска фреймворка felix в командной строке я вижу свой список пакетов, загруженных в АКТИВНОМ состоянии.

введите описание изображения здесь

Теперь я пытаюсь загрузить образец веб-приложения (JSP сервлеты) как пакет OSGi.Я получаю сообщение об ошибке типа (в командной строке)

 g! 2014-06-27 11:56:03.129:INFO:/WebApp:qtp31392457-30: No JSP support.  Check that JSP jars are in
lib/jsp and that the JSP option has been specified to start.jar
 

Я знаю, что для настройки поддержки JSP вам необходимо установить параметры при запуске сервера Jetty, например JETTY.OPTIONS= Server, jsp.

Итак, я попробовал при настройке Jetty home, например

 java -Djetty.home=C:/osgiJars/jetty-osgi-boot-9.2.0.M0/jettyhome -Djetty.options=Server,jsp -jar bin/felix.jar
 

Но все равно получаю ту же ошибку. Кто-нибудь, пожалуйста, подскажите мне, как настроить мой JSP в этом случае ..?

Ответ №1:

Никогда не пытался запустить jetty standalone для этого, хотя есть две платформы для поддержки OSGi HTTPService и многое другое. Это OPS4j Pax Web и Felix HTTPService, поскольку я немного предвзят, взгляните на Pax Web. Он предоставляет все, что вам нужно, из коробки и протестирован. Он также использует Jetty в качестве базового сервера. Также доступно множество примеров, чтобы начать работу с ним. Или, если необходимо, интеграционные тесты, чтобы показать, как на самом деле его использовать.
Pax Web является модульным в духе OSGi, поэтому, если вам просто нужен HTTPService, вы будете использовать только необходимые пакеты Pax-Web-API, Pax-Web-SPI, Pax-Web-Runtime и Pax-Web-Jetty-Bundle (уже содержащие пакеты Jetty) или, если они предпочтительнеепакеты Pax-Web-Jetty jetty. Если вы хотите использовать JSP, добавьте к нему вспомогательный пакет (это будет Pax-Web-JSP) и, возможно, тот, который добавляет поддержку доски, и все готово (Pax-Web-Extender-Whiteboard). При необходимости вы также можете работать с wars / wabs (Pax-Web-Extender-War).