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