gpt4 book ai didi

java - 当浏览器调用另一台服务器时,Tomcat session 共享不起作用

转载 作者:行者123 更新时间:2023-11-28 22:30:08 24 4
gpt4 key购买 nike

我有 2 只 Tomcat (server1 and server2)用单独的 war 运行每一个 (war1 and war2) .我添加了这个 <Context sessionCookiePath="/">context.xml在两台服务器上。

server1 : http://localhost:9090/myapp1 - spring application 
server2 : http://localhost:8080/myapp2 - grails application (version 2.3.4)
Tomcat version 7.0.47

在我的例子中,server1 是入口点。这些是步骤。

  1. 用户通过浏览器点击 server1 的 url。
  2. 使用他的凭证登录
  3. 现在服务器在成功验证后创建了一个新 session 。
  4. 点击链接到 server2 的按钮

我希望服务器 2 使用相同的 session 。

在我启动两个服务器后,我期望当 (server1) war1 的 UI 调用 server2 时将从浏览器获取现有 session 。但是当调用(调试时)到达 server2 时,没有 session ,server2 创建一个新 session 。同时,如果我直接在浏览器地址栏中点击 server2 url,server2 会从 server1 创建的浏览器中获取 session ,这是正确的。

我的问题是为什么当 (server1) UI 调用 server2 时它没有发生??!!任何帮助将不胜感激。提前致谢

最佳答案

我弄清楚了为什么 session 对其他服务器不可见。从 UI 调用时,调用是我的 ajax(同源)。 Ajax 不发送 session cookie 作为请求的一部分,这使得其他服务器生成新的 session 。

虽然 war 部署在不同的服务器上,但所有的 url 都应该指向同一个域。例如,域为 http://localhost:9000 并且应该使用应用程序名称来区分它 http://localhost:9000/app1, http://localhost:9000/app2 。为此,我配置了 Apache(2.4 版)服务器。然后它开始工作,没有任何问题

也可以有其他方法。只是想分享我找到的答案。

关于java - 当浏览器调用另一台服务器时,Tomcat session 共享不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23273889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com