Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Java > Serveurs d'application Java & Java EE > Autres

Autres Vos questions sur les autres serveurs d'application Java.

Réponse
 
Outils de la discussion
Vieux 18/09/2008, 18h03   #1 (permalink)
Nouveau membre du Club
 
Date d'inscription: novembre 2002
Messages: 63
Par défaut [Jetty] Changement de port

Bonjour,

J'utilise Jetty comme serveur http embarqué à mon application. Pour démarrer jetty j'ai bêtement suivi la doc (je dis bêtement, car j'ai pas tout compris : à quoi sers le server.join() de la fin par exemple ???) :

Code :
 
Server HTTPServer = new Server(7800);
HTTPServer.setStopAtShutdown(true);
			
Context context = new Context(HTTPServer,"/",Context.SESSIONS);
context.addServlet(new ServletHolder(new HTTPServlet(db)), "/monappli");
	        
	        
try {
	HTTPServer.start();
	HTTPServer.join();
} catch (Exception e2) {
	e2.printStackTrace();
}
 
Avec ce code, Jetty démarre bien et quand on quitte l'application il s'arrête proprement.

Maintenant je voudrais savoir comment faire pour donner la possibilité à l'utilisateur de changer le port d'écoute. Faut-il simplement redémarrer jetty ? Créer une nouvelle instance pour que le nouveau port soit pris en compte ? J'ai pas vu de setPort() dans la doc, donc comment faire ?

J'avoue que votre aide me sera grandement utile, parce que là je ne vois pas trop comment m'en sortir.

Merci d'avance.
Kehel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 19/09/2008, 09h39   #2 (permalink)
Membre Expert
 
Avatar de dinobogan
 
Date d'inscription: juin 2007
Messages: 1 333
Par défaut

Le port d'écoute est transmis dans le constructeur. Il te faut donc arrêter ton serveur, créer une nouvelle instance du serveur avec le nouveau numéro de port, puis démarrer cette nouvelle instance.
dinobogan est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 19/09/2008, 10h27   #3 (permalink)
Nouveau membre du Club
 
Date d'inscription: novembre 2002
Messages: 63
Par défaut

Oui, c'est bien ce que je pensais. Donc j'ai fait comme ça :

Code :
 
HTTPServer.stop();
while(!HTTPServer.isStopped()) { Thread.sleep(200); }
HTTPServer = new Server(leNouveauPort);
HTTPServer.setStopAtShutdown(true);
context = new Context(HTTPServer,"/",Context.SESSIONS);
context.addServlet(new ServletHolder(new HTTPServlet(db)), "/monappli");
HTTPServer.start();
//HTTPServer.join();
 
J'ai mis en commentaire le join() de la fin parce que quand je le laisse et que je fais un changement de port (quand je passe par le bout de code ci-dessus), mon appli freeze et je n'ai plus la main. Je ne sais pas à quoi sert cette commande, est-ce important ou non ?

Second problème, c'est que lorsque je change de port avec cette méthode (sans le join() cette fois) et que je quitte mon application, jetty ne s'arrête pas Pourtant j'ai bien indiqué "HTTPServer.setStopAtShutdown(true);".

Kehel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 19/09/2008, 11h53   #4 (permalink)
Nouveau membre du Club
 
Date d'inscription: novembre 2002
Messages: 63
Par défaut

Bon mon second problème est réglé, en fait c'était de ma faute, je n'indiquait pas à la classe principale (censée arrêter l'application) qu'un nouveau serveur HTTP existait ... du coup elle ne pouvait pas l'arrêter.

Quant à mon 1er problème (fonction join()), je ne comprends toujours pas. Si quelqu'un pouvait m'expliquer à quoi elle sert cette fameuse fonction, ça serait sympa.

Merci.
Kehel est déconnecté   Envoyer un message privé Réponse avec citation
NEWS JAVAFAQsTUTORIELSJAVASEARCHSOURCESLIVRESOUTILS, EDI & APIECLIPSENETBEANSBLOGDISCUSSIONSTV

Réponse

Précédent   Forum des développeurs > Java > Serveurs d'application Java & Java EE > Autres



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide