2013-02-20 4 views
12

Я новичок в архитектуре Jetty и клиент/сервер.Как остановить Jetty

Мне удалось написать причал в затмении, и он работает.

Но как я могу остановить причал? Я слышал что-то о stop.jar и start.jar. Где я могу это найти? Он интегрирован в причал-все-jar?

ответ

20

Различные артефакты jetty-all.jar могут использоваться для использования встроенного причала. Если вы решите использовать эту банку, вам придется самостоятельно управлять запуском/выключением.

Обновление: 2015: По состоянию Jetty 9, использование jetty-all.jar как зависимость является устаревшим. Это связано с тем, что с Jetty 9 теперь невозможно удовлетворить «все» Jetty в одном агрегатном банке. Есть компоненты Jetty, которые не могут быть включены, поскольку они вызовут проблемы с этим агрегатным банком. Будущее Jetty с поддержкой HTTP/2 также делает этот агрегатный банд менее полезным в качестве зависимости.

Типичное использование врезанный Режим

Нить, запускает сервер:

Server server = new Server(); 
// various server configuration lines 
// ... 

// Start server (on current thread) 
server.start(); 

// Have current thread wait till server is done running 
server.join(); 

другой поток, который сообщает серверу для отключения

// Have server stop running 
server.stop(); 

На данный момент оригинал Поток потока на server.join(); завершен и этот поток продолжает работать.

Стандартный Usage Распределение

Если используется стандартное распределение доступного из download.eclipse.org/jetty/ у вас есть start.jar, которые могут быть использованы для запуска/остановки Jetty себя.

После того, как вы распаковали свой дистрибутив, вы найдете start.jar в самом верхнем каталоге. Это можно использовать следующим образом.

Процесс, который начинается молы:

$ java -jar start.jar STOP.PORT=28282 STOP.KEY=secret 

Процесс, который останавливает молы:

$ java -jar start.jar STOP.PORT=28282 STOP.KEY=secret --stop 
+0

Спасибо за ваш ответ. Я использовал stop(), но я все еще мог отправить запрос, поэтому я думал, что это не сработало. Но я думаю, моя проблема в том, что я начал больше, чем просто один случай. Теперь у меня есть метод запуска и перезапуска, который я могу вызвать в терминале, и он работает. Мне придется добавить аутентификацию к моим методам начала и остановки, но это еще одна проблема. – Salvadora

+0

Эй, вы знаете, есть ли способ перезапуска причала, не возобновляя нить, которая присоединилась()? – lisak

2

Если молы, как Maven плагин, вы остановите сервер, нажав Ctrl + C и нажмите Y, чтобы подтвердить завершение.

Смежные вопросы