我已将我的谷歌应用程序引擎应用程序从 java ee 8 迁移到 jakarta 10。我曾经使用
<sessions-enabled>true<sessions-enabled>
标签管理会话。但自从我将应用程序迁移到 jakarta 10 并开始使用 java 21 运行时后,应用程序引擎 api 就不起作用了。其中在幕后我需要应用程序引擎 API 才能使用<sessions-enabled>
。因此,不要使用标准方式存储我的会话属性
session.setAttribute(USERNAME, username);
我开始使用 http cookies 来存储我的属性。这是我在会话管理方面所做的唯一更改。因此,如果我第一次部署。我可以登录,即使在注销后我的应用程序也可以正常运行。但是,如果我部署新的更改,我的应用程序将无法启动,直到我清除浏览器缓存。我有什么办法可以解决这个问题吗?这是我收到的错误
Request failed: Unexpected Error: java.io.IOException: written 54 > 0 content-length
我发现使用
response.sendRedirect("/")
来重定向用户(无论会话验证是否成功)都会导致错误。所以我切换到 request.getRequestDispatcher("").forward(request, response)
,它在服务器内部转发请求。