Отдельные веб-приложения в Jetty на разных портах - PullRequest
7 голосов
/ 25 января 2010

Мне нужна следующая настройка.

  • Jetty должен прослушивать порт 8080 и 9090
  • Каждый порт должен иметь свои собственные отдельные приложения (то есть webapp1 работает на 8080 и webapp2 на 9090 ). Веб-приложения должны быть доступны только через назначенные им порты (т. Е. webapp2 не должно быть доступно на порту 8080 ).

Я успешно добавил дополнительные коннекторы в etc / jetty.xml, поэтому теперь он использует порты 8080 и 9090. Я также добавил дополнительные обработчики , поэтому теперь он получает веб-сообщения от нескольких каталоги (dir1 / webapp1 и dir2 / webapp2).

Моя проблема заключается в следующем: Jetty развертывает все веб-приложения, найденные каждым обработчиком, на каждом соединителе (то есть на каждом порту), и, таким образом, webapp1 и webapp2 оба становятся доступными на порту 8080 и 9090 .

Мне нужен способ гарантировать, что handler1 (обрабатывает dir1 / webapp1) предназначен только для connector1 (прослушивает порт 8080) и в равной степени для connector2 выбрать только handler2 (обрабатывает dir2 / webapp2) через порт 9090 .

Есть ли способ сделать это?

Ответы [ 3 ]

11 голосов
/ 25 января 2010

Документация Jetty показывает два метода.

Первый настраивает два отдельных экземпляра сервера и запускает их, указав два имени файла конфигурации в командной строке.

Второй метод использует имена для двух соединителей, и каждый контекст приложения называет соединители, которые он будет использовать.

2 голосов
/ 25 января 2010

В основном вы собираетесь создать два экземпляра в одной и той же JVM.

Создайте два XML-файла, и в каждом из XML-файлов укажите:

...
<Set name="port">XXXX</Set>
...
<New id="webAppX"  class="org.mortbay.jetty.webapp.WebAppContext">      
  <Arg><Ref id="Contexts"/></Arg>
  <Arg><SystemProperty name="jetty.home"/>/webapps/X</Arg>
  <Arg>/webappX</Arg>
  ...
</New>
...

[убедитесь, что вы заменили значения X в соответствующих файлах xml.]

Запустите Jetty с двумя экземплярами в одной и той же JVM, например:

java -jar start.jar webapp1.xml webapp2.xml
0 голосов
/ 25 января 2010

Почему бы вам не использовать две установки Jetty, если вы хотите разделить приложения?

...