如何防止 Jetty/GAE 为不同的上下文路径创建新会话?

Posted

技术标签:

【中文标题】如何防止 Jetty/GAE 为不同的上下文路径创建新会话?【英文标题】:How do I prevent Jetty/GAE from creating new sessions for different context paths? 【发布时间】:2018-01-27 07:36:48 【问题描述】:

我托管了一个应用程序,它使用许多不同的 servlet 路径。似乎 Jetty(GAE 使用)为请求 URL 中的每个上下文路径创建了一个新会话。

例子:

    abc.appspot.com/

    abc.appspot.com/path2/hello

这些路径中的每一个都使用两个不同的会话。有什么办法可以防止这种情况发生吗?我遇到了可以在 Jetty 服务器的 web.xml 文件中使用的以下配置:

<context-param> <param-name>org.eclipse.jetty.servlet.SessionPath</param-name> <param-value>/</param-value> </context-param>

它对我不起作用,是我做错了还是这不可能?我听说过this is possible in Tomcat。

【问题讨论】:

【参考方案1】:

我猜你想在 2 个应用程序之间共享一个会话(数据),而不仅仅是用不同的 id 共享同一个 id。

如果是这样,请检查与服务器无关的 spring-session,它可以帮助您做一些疯狂的事情

【讨论】:

我阅读了文档,它告诉我我们需要在本地系统中安装 Redis 并在端口上运行它以启用 Spring Session。我认为这在标准的 Google App Engine 环境中是不可能的。 我认为这是可能的。您还可以使用标准数据库来存储您的会话。有很多选择。 GAE 是一种 PaaS,程序员无法访问文件系统。您能否指出 GAE 文档中的一个链接,该链接显示了这是如何实现的? 您的应用程序没有数据库/数据存储?对会话使用相同的东西。

以上是关于如何防止 Jetty/GAE 为不同的上下文路径创建新会话?的主要内容,如果未能解决你的问题,请参考以下文章

在反应中,当路由路径不同但组件相同时。如何防止重新安装?

docker镜像构建

如何防止应用重启后自动创建子片段?

将一个路径进行标准化的解析, 防止路径中连续出现多个‘/’,以及防止路径中出现'\', 防止路径结尾出现 '/'

jboss中同一战争的多个上下文路径

Magnolia 防止使用父页面模板创建子页面