web/Spring

Tomcat에서 war 사이에 session 공유

반응형

회사 프로젝트에서 같은 톰캣 컨테이너를 사용하는 war 애플리케이션 사이에 session을 공유해야 하는 경우가 있었다.

한참을 구글링하던 도중에 사용방법에 대해 알게 되었고, 나중에 사용하기 위해서 정리해보았다.

[설정방법]

1. context.xml 수정
-> 각 war에 위치한 context.xml에 crossContext와 rootPath를 적어준다.


1
2
3
4
<Context path="/wedulPos" crossContext="true">
 
    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
cs


2. tomcat의 server.xml의 Connector에 emptySessionPath 속성을 추가한다.
1
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" emptySessionPath="true"/>
cs



3. 공유할 세션의 속성 지정

1
2
// wedulPos war의 세션 속성 설정
request.getSession().getServletContext().setAttribute("id", userId);
cs



4. 공유된 세션 속성 찾기

1
String ssUserId =  (String) request.getSession().getServletContext().getContext("/wedulPos").getAttribute("id");
cs



출처

http://yamea-guide.tistory.com/65

반응형