我遇到了一个奇怪的(对我来说)由 JBoss 提供的 java 应用程序的情况。
--背景--
1) JBoss安装在Linux环境中。
为了便于说明,我的环境中的 IP 地址是:99.999.999.99
2) 在环境中,我的 JBoss 运行在:http://127.0.0.1:8080
有多个应用程序,可以通过以下方式联系:http://127.0.0.1:8080/APPLICATION_NAME
3) 我的 apache 将流量路由到我的 IP 地址,如下所示:
ProxyPass / http://127.0.0.1:8080/app1/
ProxyPassReverse / http://127.0.0.1:8080/app1/
ProxyPass /app2/ http://127.0.0.1:8080/app2/
ProxyPassReverse /app2/ http://127.0.0.1:8080/app2/
ProxyPass /app3/ http://127.0.0.1:8080/app3/
ProxyPassReverse /app3/ http://127.0.0.1:8080/app3/
4) 当我访问 99.999.999.99 时,我能够访问 app1,它按预期运行(除了下面的问题)。
当我访问 99.999.999.99/app2 时,我能够访问 app2。
--问题--
1) 在 app1 内部,我有一个写入 session 的 jsp 页面:
_sessionTest1.jsp session.setAttribute("测试", "测试");
2) 问题是运行此 JSP 后, session 将不包含设置的数据。
3) 如果我删除 apache 代理,并公开 JBoss 根目录,同时还 管理链接和 JMX 控制台, session 将按预期更新。
以这种方式配置时,我访问应用程序的方式是:
99.999.999.99/app1
其中 99.999.999.99 将显示我的 JBoss 根目录。
4) 如果按上述配置,是否预计应用程序的 session 将无法访问?
谢谢!
最佳答案
事实证明,问题在于 apache 需要配置为从 cookie 中查找 session 信息,而不是默认的 URL。
关于java - JBoss 服务的应用程序 - 使用 apache proxypass session 无法访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125425/