无法从vertx中的“路由上下文”获取Couchbase实例作为会话对象

时间:2019-07-18 08:12:36

标签: vert.x couchbase-java-api

我是Vertx和Couchbase的新手。为了访问整个网络应用程序中的couchbase实例,我在会话中添加了该实例。但是我无法通过get()方法访问couchbase实例。

我正在使用Vertx 3.7.1,Java 8构建应用程序,并且正在为Couchbase DB使用Java 2.7 API。对于Web模块,我正在使用Vertx-Web 3.7.1。为了创建和添加会话,我参考了以下文档:

http://vertx.io/docs/vertx-web/java/#_handling_sessions

根据文档,我编写了以下代码。

update()

然后在会话中设置对象

 Router router = Router.router(vertx);
         router.route().handler(CookieHandler.create());
         SessionStore sessionstore = LocalSessionStore.create(vertx,"sampleapp.sessionmap");
         SessionHandler sessionHandler =SessionHandler.create(sessionstore);
         router.route().handler(sessionHandler);

并且我正在尝试使用以下代码在处理程序中获取此对象。

router.post("/homepagehandler").handler(BodyHandler.create())
         .handler(this::homeHandler)
         .handler(routingContext -> {
            Session session = routingContext.session();
            session.put("CouchDbInstance", cbaseInstance);
        });

尝试获取CouchDbInstance时出现以下错误堆栈。

private void homepageHandler(RoutingContext routingContext) {
        logger.info("Inside Home Page Handler::");
        CouchbaseVerticle couchBaseObject =  routingContext.session().get("CouchDbInstance");
        logger.info("Session Object retrieved ::"+routingContext.session().id());

}

如果能帮助我解决此问题,我将不胜感激。

0 个答案:

没有答案