Bitte schauen Sie auf folgende Stück Code in der Klasse befindet sich erstreckenden AbstractVerticle
:Vert.x Zukunft Handler Einstellung
@Override
public void start(Future<Void> serverStartFuture) throws Exception {
log.info("Deploying " + this.getClass().toString() + " verticle...");
//TODO: Handler is not calling.
serverStartFuture.setHandler(event -> {
if(event.succeeded()){
log.info("Deploying " + this.getClass().toString() + " verticle SUCCESS");
} else if (event.failed()){
log.error("Deploying " + this.getClass().toString() + " verticle FAIL:");
log.error(event.cause());
}
});
/* To follow future compose pattern in future */
Future<Void> initSteps = this.initHttpServ();
initSteps.setHandler((AsyncResult<Void> asyncResult) -> {
if(asyncResult.succeeded()){
serverStartFuture.complete();
}else if(asyncResult.failed()){
serverStartFuture.fail(asyncResult.cause());
}
});
}
Unter der Annahme, dass initHttpServ
immer vollständig Zukunft zurück:
private Future<Void> initHttpServ(){
Future<Void> httpServerFuture = Future.future();
httpServerFuture.complete();
return httpServerFuture;
}
Warum die serverStartFuture.setHandler
ist nie in meinem Fall genannt? verstehe ich das Konzept, dass Art und Weise:
- Zukunft erstellen
f
- gesetzt
f
Zukunft Handler - darüber
- Irgendwo anders in Code vergessen gesetzt
f
-complete
/fail
- Nach der Einstellung
f
Ergebnis , Handler ruft
Aber mein Stück Code scheint diesen Ansatz zu negieren. Mache ich etwas falsch?
Ich sehe "INFO: Klasse [Classname] verticle SUCCESS implementieren" in den Protokollen. Können Sie zeigen, was in den Protokollen für Sie angezeigt wird und was Sie erwarten? –