2017-09-09 9 views
0

Dans mon application, je commence embarqué Undertow dans la méthode principale du programme. Dans tous les tutoriels, la méthode stop n'est pas utilisée. Si je lance appliction du terminal ou de IntelliJ et l'arrêter (CTRL + C ou arrêter icône) Je voisProcessus terminé avec le code de sortie 1 lors de l'arrêt Embedded Undertow

processus terminé avec le code de sortie 1

J'ai essayé d'ajouter

Runtime.getRuntime().addShutdownHook(new Thread(undertow::stop)); 

mais le résultat est le même. Où dois-je appeler stop méthode?

+0

'server.stop()' travaillerai pour vous, * où * pourrait être défini regardant plus de contexte de la façon dont vous démarrez le serveur et exécutez l'exécution. – nullpointer

Répondre

1

Voici une sample builder api qui peut être modifié (juste un échantillon) pour arrêter l'enregistrement après avoir effectué une console comme:

public class HelloWorldServer { 

    public static void main(final String[] args) { 
     Undertow server = Undertow.builder()             //Undertow builder 
       .addListener(8080, "localhost")             //Listener binding 
       .setHandler(new HttpHandler() {             //Default Handler 
        @Override 
        public void handleRequest(final HttpServerExchange exchange) throws Exception { 
         exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain"); //Response Headers 
         exchange.getResponseSender().send("Hello World");      //Response Sender 
        } 
       }).build(); 
     server.start(); 
     System.out.println("I did some work for you..Rest is to dig deeper!"); 
     server.stop(); 
    } 

}