【发布时间】:2016-03-17 12:00:18
【问题描述】:
谁能告诉我如何在 Dropwizard 0.8.x 或更高版本中实现会话管理。到目前为止,我一直在使用 Dropwizard 0.7.0 并在其中完美地工作。但是当我迁移到 0.8.x 时,我对提供的更改文档感到非常困惑。
在 Dropwizard 0.7.0(我之前使用过)中,它的完成方式如下
/*MainApplication.class session handler */
environment.jersey().register(HttpSessionProvider.class);
environment.servlets().setSessionHandler(new SessionHandler());
/*Resource.class session check*/
HttpSession session = httpServletRequest.getSession(true);
但它似乎不再起作用了,准确地说 HttpSessionProvider.class 不存在并被其他一些实现所取代。
如果有人向您展示这将是什么,这将是非常有帮助的。 谢谢。
【问题讨论】:
-
嘿,你有没有尝试将会话注入到你的资源方法中?例如。在我的应用程序中我这样做:方法签名中的@Context HttpServletRequest。这肯定有效,然后您可以从您的请求对象中获取 HttpSession。您可能能够将会话直接注入您的资源方法中。
-
@pandaadb :我在这里使用了“@Context”,但在请求之间没有维护会话。有什么奇怪的。我们还需要像旧版本那样注册任何会话提供程序吗?
-
我不必注册一个,我也从未详细研究过会话中的内容。但是保持会话,这不会发生在客户端吗?例如。服务器只是得到它得到的东西。 HttpSessionProvider 中的代码除了在请求本身上调用 get 之外什么都不做。在更高版本的 dropwizard 中,提供程序被替换为我认为 SessionFactoryProvider
标签: java session jersey dropwizard httpsession