2009-08-11 11 views
9

J'ai intégré Jetty dans une application java et j'appelle la méthode start() sur une instance de l'objet serveur Jetty (après avoir défini une liste de gestionnaires qui décrit l'emplacement du contenu web dynamique). Est-ce que start() appelle le bloc jusqu'à ce que l'initialisation soit terminée? Si non, comment puis-je déterminer quand le serveur est entièrement démarré et prêt à recevoir des demandes?Détection de l'initialisation complète d'un serveur Jetty intégré

Répondre

0

Voici un exemple de la façon dont je l'ai dans cette dans les ANT, le lancement de Firefox, une fois l'application de la jetée était prêt

<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

Nous avons une application jetée intégrée avec des dizaines de plug-in WARS et servlets pour initialiser. ..J'ai jamais eu une demande de navigateur expiré pendant le démarrage de l'application, de sorte que le processus d'initialisation du serveur est assez rapide. Toutefois, vous pouvez vérifier si le serveur de la jetée est encore en cours de démarrage ou prêt en vérifiant

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

HTH

5

Oui, le serveur est complètement initialisé lors du retour Server.start(). Il n'y a pas besoin de faire autre chose. La documentation n'est pas claire sur ce comportement, mais je viens de le vérifier en regardant le code.

0

Est-ce que start() appelle le bloc jusqu'à ce que l'initialisation soit terminée?

Non, il exécute le serveur en arrière-plan

Sinon, comment puis-je déterminer à quel moment le serveur est entièrement démarré et prêt à recevoir des demandes?

Vous utilisez la méthode 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(); 

Voir [1] pour plus d'informations.

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