Обнаружение, когда встроенный сервер Jetty полностью инициализирован - PullRequest
11 голосов
/ 11 августа 2009

Я встроил Jetty в Java-приложение и вызываю метод start () для экземпляра объекта сервера Jetty (после установки списка обработчиков, который описывает расположение статического и динамического веб-содержимого). Вызывает ли блок start () блокировку до завершения инициализации? Если нет, как определить, когда сервер полностью запущен и готов к приему запросов?

Ответы [ 4 ]

5 голосов
/ 06 августа 2015

Да, сервер полностью инициализируется при возврате Server.start (). Там нет необходимости делать что-либо еще. В документации не ясно об этом, но я только что проверил это, посмотрев код.

3 голосов
/ 22 декабря 2011

У нас есть встроенное приложение Jetty с десятками подключаемых плагинов WARS и сервлетов для инициализации ... У меня никогда не было тайм-аута запроса браузера во время запуска приложения, поэтому процесс инициализации сервера довольно быстрый. Однако вы можете проверить, запущен ли сервер Jetty или готов, отметив

Server.isStarting()
Server.isStarted()
Server.isRunning()

НТН

0 голосов
/ 10 января 2018

Вызывает ли блок start () блокировку до завершения инициализации?

Нет. Он будет запускать сервер в фоновом режиме

Если нет, как определить, когда сервер полностью запущен и готов к приему запросов?

Вы используете org.eclipse.jetty.server.Server#join() метод.

// The use of server.join() the will make the current thread join and
// wait until the server is done executing.
// See
// http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#join()
server.join();

Подробнее см. [1].

[1] http://www.eclipse.org/jetty/documentation/9.3.x/embedding-jetty.html

0 голосов
/ 26 марта 2010

Вот пример того, как я запустил это в ANT, запустив Firefox, как только приложение Jetty будет готово

<parallel>
    <jetty tempDirectory="${work.dir}">
        <connectors>
            <selectChannelConnector port="${jetty.port}"/>
        </connectors>
        <webApp name="ex1" warfile="ex1.war" contextpath="/ex1"/>
    </jetty>

    <sequential>
        <waitfor maxwait="10" maxwaitunit="second">
            <http url="http://localhost:${jetty.port}/ex1"/>
        </waitfor>

        <exec executable="firefox" spawn="yes">
            <arg line="http://localhost:${jetty.port}/ex1"/>
        </exec>
    </sequential>
</parallel>
...