개발을 하다보면 로컬에서 A, B 두개의 각기다른 WAS 서버로 구동하는 프로젝트가 있다.
A 라는 사이트에서 로그인을하고 B 사이트에서 페이지이동이나 새로고침을하게되면 A 사이트에서 로그인이 끊기는 경우가 종종 발생한다.
JSessionID 가 두개의 프로젝트에서 같은 세션 아이디로 저장이 되어서 충돌하기때문에 발생하는 문제이다.
TOMCAT 에서는 서비스에따라 JSessionID의 세팅을 각각 해줄수있다.
server.xml에서 context 부분에
<Context path="" reloadable="false" privileged="true" docBase="D:/Web/WebContent"
sessionCookieName="test_JSESSIONID" workDir="" crossContext="true" />
를 추가해주면 각기다른 세션아이디가 설정이되기때문에 A, B 둘중의 하나의 프로젝트만 세팅해주면 해결된다.
그리고 실제로 도메인을갖고 운영되는 사이트는 세션 세팅을 따로해주지 않아도 충돌이 나지않는다.
(localhost 에서만 발생하는 오류)
'Server > Server' 카테고리의 다른 글
[Tomcat] 톰캣 서버 성능 향상 및 동시 접속자 대응방법 (0) | 2023.01.11 |
---|---|
[Tomcat] 톰캣 세션(session) 타임아웃 설정 및 세션 우선순위 (0) | 2023.01.11 |
[Tomcat] appBase, docBase 차이 및 설정 방법 (0) | 2022.04.21 |