具有多个Web应用程序的Tomcat实例-会话相互干扰
我试图在一个Tomcat实例上运行多个WebApp。我的目标是在给定端口的根上下文中访问每个端口,例如具有多个Web应用程序的Tomcat实例-会话相互干扰,tomcat,jenkins,Tomcat,Jenkins,我试图在一个Tomcat实例上运行多个WebApp。我的目标是在给定端口的根上下文中访问每个端口,例如 http://server:8081 http://server:8082 ... 我在server.xml中为每一个提供了单独的“服务”、“连接器”、“引擎”和“主机”条目。一切似乎都很正常,只是一旦我登录到第一个应用程序,如果我再登录到第二个应用程序,第一个应用程序将丢失其会话信息并注销 如果我编辑server.xml并在其原始上下文中运行它们,例如 http://server:8081
http://server:8081
http://server:8082
...
我在server.xml中为每一个提供了单独的“服务”、“连接器”、“引擎”和“主机”条目。一切似乎都很正常,只是一旦我登录到第一个应用程序,如果我再登录到第二个应用程序,第一个应用程序将丢失其会话信息并注销
如果我编辑server.xml并在其原始上下文中运行它们,例如
http://server:8081/jenkins
http://server:8082/jenkins
...
一切似乎都很好。这让我相信,当会话都在根上下文中时,会话是以某种方式共享的,即使它们有单独的连接器,等等。知道我在做什么导致了这种情况吗
我确认这两个实例共享同一个jsessionID,并且当我使用一个实例登录时,另一个实例将丢失其第一个jsessionID,并使用第二个jsessionID,实际上将丢失其身份验证 看看上下文参数。我自己没有试过,但我想这可能是你正在寻找的诀窍。Tomcat 7 修改文件$CATALINA_BASE/conf/context.xml,添加属性
WEB-INF/WEB.xml
谢谢。我自己也开始尝试这个,但还没有运气。
<!-- The contents of this file will be loaded for each web application -->
<Context sessionCookieName="JSESSIONID_SERVER_01">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--
<Manager pathname="" />
-->
<!-- Uncomment this to enable Comet connection tacking (provides events
on session expiration as well as webapp lifecycle) -->
<!--
<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
-->
</Context>