2009-08-11 17 views
9

He incluido Jetty en una aplicación java y estoy llamando al método start() en una instancia del objeto servidor Jetty (después de configurar una lista de manejadores que describe la ubicación de la estática y contenido web dinámico). ¿El bloque de llamada de inicio() se completa hasta que se completa la inicialización? Si no, ¿cómo puedo determinar cuándo el servidor está completamente iniciado y listo para recibir solicitudes?Detectando cuando un servidor Jetty incrustado está completamente inicializado

Respuesta

0

Aquí hay un ejemplo de cómo he pulsado este plazo de ANT, el lanzamiento de Firefox vez que la aplicación embarcadero estaba listo

<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> 
3

tenemos una aplicación embarcadero incrustado con docenas de plug-in de las guerras y los servlets para inicializar. .. Nunca he tenido un tiempo de solicitud de navegador mientras se iniciaba la aplicación, por lo que el proceso de inicio del servidor ES bastante rápido. Sin embargo, se puede comprobar si el servidor embarcadero todavía se está iniciando o listos comprobando

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

HTH

5

vuelve Sí, el servidor está completamente inicializado cuando Server.start(). No hay necesidad de hacer nada más. La documentación no es clara sobre este comportamiento, pero acabo de verificarlo mirando el código.

0

¿El bloque de llamadas de inicio() se completa hasta que se completa la inicialización?

No. Se ejecutará el servidor en segundo plano

Si no, ¿cómo puedo determinar cuando el servidor esté totalmente activado y listo para recibir peticiones?

Método 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(); 

Ver [1] para más información.

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

Cuestiones relacionadas