我是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());
}
如果能帮助我解决此问题,我将不胜感激。