2017-07-07 1 views
1

Ich bekomme ein Problem, wenn Vertex auf einem Unix-Server ausgeführt wird. Wenn die vollständige Nachricht empfangen wird, funktioniert der Endhandler nicht.http Client Vertex in Unix

HttpClientRequest request = client.post (8580, "localhost", "/", response -> 
{ 

    if (response.statusCode() == 200) { 
    response.handler (t -> { 

     LOG.info ("RECEIVE DATA: " + t.toString()); 

    }); 
    response.endHandler (t -> { 
     LOG.info ("endHandler: DONE"); //DO NOT PRINT ON LOG FILE 
    }); 

    } else { 
    LOG.info ("Sent error:"+response.statusMessage()); 
    } 
}); 

Meine Quelldemo: https://github.com/blueskyvn/vertx_client.

Antwort

1
  1. Sie sollten Ihren HTTP-Client schließen, nachdem die Anfrage abgeschlossen ist. Verschieben Sie daher client.close(); Zeile an den Antworthandler.
  2. Verschieben Sie den gesamten Code für die Arbeit mit dem HTTP-Client zum verticle. Sie können es einfach in Ihre HttpVerticle-Klasse verschieben und es aufrufen, nachdem der Server gestartet wurde. Verwenden Sie die Methode listen mit Rückruf.
+0

danke Ihren Vorschlag. Dieses Projekt ist eine Demo um meinen Fehler auf einem Unix Server zu beschreiben –