2017-08-26 1 views
-1

J'ai créé le VertX HTTPServer en suivant le code java,Comment arrêter le serveur httpserver par programme?

HttpServer htttpServer = vertx.createHttpServer(); 
htttpServer.setReceiveBufferSize(4 * 1024); 
htttpServer.setSendBufferSize(4 * 1024) 
    .requestHandler(routeMatcher) 
    .listen(portNo, hostname); 

J'ai placé ce code serveur dans un mon verticle (RestVerticle.java) quand je Déployez le verticle il démarre le serveur et je suis en mesure de voir le port est occupé. Maintenant, je veux arrêter le httpserver par programmation au lieu de simplement appuyer sur ctrl + c. Veuillez m'aider à rectifier ce problème.

Répondre

0

Vous pouvez fermer par programme le serveur HTTP.

HttpServer server = vertx.createHttpServer(); 
server.listen(Config.getInt("HTTP_PORT")); 
// To stop the server: 
server.close(); 
+0

Merci Niraj, J'ai méthode principale (qui est à l'intérieur de StartApp.java) qui déploie tous les verticles connexes. disons, je crée un serveur http à l'intérieur RestVerticle.java. Maintenant, comment puis-je arrêter le service dans le fichier StartApp.java, comme je crée l'instance du serveur http dans le fichier RestVerticle.java. Parce que, nous devrions dire server.close() avec la même instance droite? –

+0

Oui, mais je suppose que le défi devrait être comment appelez-vous 'server.close()'? Comme vous exécutez le fichier jar à partir du terminal –

+0

Donc seulement, j'ai fait une réparation rapide que j'ai trouvé l'ID du processus de ce port et le tuer par le code Java. Est-ce une solution optimale pour mon exigence? –