13

我已将 Jetty 嵌入到 java 应用程序中,并在 Jetty 服务器对象的实例上调用 start() 方法(在设置描述静态和动态 Web 内容位置的处理程序列表之后)。start() 调用是否会阻塞直到初始化完成?如果没有,我如何确定服务器何时完全启动并准备好接收请求?

4

4 回答 4

6

是的,当 Server.start() 返回时,服务器已完全初始化。没有必要做任何其他事情。文档并不清楚这种行为,但我只是通过查看代码来验证它。

于 2015-08-06T18:54:47.487 回答
4

我们有一个嵌入式 Jetty 应用程序,其中包含许多要初始化的插件 WARS 和 servlet……我从来没有在应用程序启动时出现浏览器请求超时,因此服务器初始化过程非常快。但是,您可以通过检查来检查 Jetty 服务器是否仍在启动或准备就绪

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

高温高压

于 2011-12-22T11:29:44.323 回答
0

Here's an example of how I've down this within ANT, launching firefox once the jetty application was ready

<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>
于 2010-03-26T00:29:45.160 回答
-2

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

于 2018-01-09T21:22:16.860 回答