RxJava无法调用路由的处理程序

RxJava无法调用路由的处理程序,java,rx-java,reactive-programming,Java,Rx Java,Reactive Programming,我使用RxJava和Vert.x调用“/callme”的路由,如下所示。当我呼叫“/呼叫我”时,它仍会打印“你好,来自rx verticle!” @覆盖 public void start()引发异常{ HttpServer服务器=vertx.createHttpServer(); `server.requestStream().toObservable().subscribe(请求->{ HttpServerResponse res=req.response(); res.putHeader(

我使用RxJava和Vert.x调用“/callme”的路由,如下所示。当我呼叫“/呼叫我”时,它仍会打印“你好,来自rx verticle!”

@覆盖
public void start()引发异常{
HttpServer服务器=vertx.createHttpServer();
`server.requestStream().toObservable().subscribe(请求->{
HttpServerResponse res=req.response();
res.putHeader(“内容类型”、“文本/html”);
res.end(“你好,来自rx垂直线!”);
});
监听服务器(8090);
路由器=Router.Router(Vertx.Vertx());
router.route().handler(BodyHandler.create());
//将“/”绑定到我们的hello消息-因此我们仍然兼容。
router.route(“/”)处理程序(routingContext->{
HttpServerResponse=routingContext.response();
响应
.putHeader(“内容类型”、“文本/html”)
.end(“我的第一个Vert.x 3应用程序中的您好”);
});
route(“/callme*”).handler(BodyHandler.create());
router.post(“/callme”).handler(this::divide);
}

您总是得到相同响应的原因是您创建了路由器,但从未将其注册到服务器

@Override
public void start() throws Exception {

    HttpServer server = vertx.createHttpServer();

    Router router = Router.router(Vertx.vertx());
    router.route().handler(BodyHandler.create());

    // Bind "/" to our hello message - so we are still compatible.
    router.route("/").handler(routingContext -> {
        HttpServerResponse response = routingContext.response();
        response
            .putHeader("content-type", "text/html")
            .end("<h1>Hello from my first Vert.x 3 application</h1>");
    });

    router.route("/callme*").handler(BodyHandler.create());
    router.post("/callme").handler(this::divide);

        server.requestStream().toObservable().subscribe(req -> {
         HttpServerResponse res = req.response();
         res.putHeader("content-type", "text/html");
         res.end("Hi there, from rx verticle!");
     });

         vertx
        .createHttpServer()
        .requestHandler(router::accept)
        .rxListen(8090)
        .subscribe(httpServer -> logger.info("server is running..."));
}
@覆盖
public void start()引发异常{
HttpServer服务器=vertx.createHttpServer();
路由器=Router.Router(Vertx.Vertx());
router.route().handler(BodyHandler.create());
//将“/”绑定到我们的hello消息-因此我们仍然兼容。
router.route(“/”)处理程序(routingContext->{
HttpServerResponse=routingContext.response();
响应
.putHeader(“内容类型”、“文本/html”)
.end(“我的第一个Vert.x 3应用程序中的您好”);
});
route(“/callme*”).handler(BodyHandler.create());
router.post(“/callme”).handler(this::divide);
server.requestStream().toObservable().subscribe(请求->{
HttpServerResponse res=req.response();
res.putHeader(“内容类型”、“文本/html”);
res.end(“你好,来自rx垂直线!”);
});
顶点
.createHttpServer()
.requestHandler(路由器::接受)
.rxListen(8090)
.subscribe(httpServer->logger.info(“服务器正在运行…”);
}

谢谢Niraj,就这样!
@Override
public void start() throws Exception {

    HttpServer server = vertx.createHttpServer();

    Router router = Router.router(Vertx.vertx());
    router.route().handler(BodyHandler.create());

    // Bind "/" to our hello message - so we are still compatible.
    router.route("/").handler(routingContext -> {
        HttpServerResponse response = routingContext.response();
        response
            .putHeader("content-type", "text/html")
            .end("<h1>Hello from my first Vert.x 3 application</h1>");
    });

    router.route("/callme*").handler(BodyHandler.create());
    router.post("/callme").handler(this::divide);

        server.requestStream().toObservable().subscribe(req -> {
         HttpServerResponse res = req.response();
         res.putHeader("content-type", "text/html");
         res.end("Hi there, from rx verticle!");
     });

         vertx
        .createHttpServer()
        .requestHandler(router::accept)
        .rxListen(8090)
        .subscribe(httpServer -> logger.info("server is running..."));
}