2015년 04월 21일 "Spring Scheduler(스케쥴러) 사용"에 관한 포스팅을 하였습니다.
포스팅 이동 : http://nightsun.tistory.com/entry/Spring-Scheduler스케쥴러-사용
개발 pc에서는 잘돌아가는데 서버나 테스트서버에 배포를 하여 실행을 하면
스케쥴이 동시에 두번 실행되는 문제가 발생하였다.
흠...왜 그럴까???
이것저것 찾아본 결과 2가지 해결책을 찾아 볼수 있었다.
환경은 Spring + tomcat
1) Spring 환경 설정의 문제
web.xml에서 Spring의 ContextLoader의 중복 문제이다.
웹어플리케이션 상에서 둘 이상의 Listener or Servlet을 등록때 하나의 context정보 파일을 두 번 이상 부르는 경우이다.
이건 환경설정을 할때 잘못 설정을 한것이고, 사용하는데는 문제가 되지 않지만, 스케쥴러와 같은 작업에서는 문제가 된다.
2) tomcat 환경 설정의 문제
C:\apache-tomcat-7.0.59\conf\server.xml 위치의 파일을 보면 하기와 같이 appBase와 docBase가 잡혀있다.
Host의 appBase는 여러 webapp들이 들어갈 부모 디렉토리이다.
Context의 docBase는 실제로 동작할 프로젝트 디렉토리이다.
<Host name="localhost" appBase="C:\apache-tomcat-7.0.59\webapps"
unpackWARs="true" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="C:\apache-tomcat-7.0.59\webapps/project" reloadable="false" />
< /Host>
상기의 <Host>~~~</Host>의 부분을 하기와 같이 바꿔주면 해결이 된다.
<Host name="localhost" appBase=""
unpackWARs="true" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="C:\apache-tomcat-7.0.59\webapps/project" reloadable="false" />
< /Host>
참으로 어렵다~~~ㅠ
'IT > JAVA' 카테고리의 다른 글
자바 웹서비스 호출 (0) | 2018.05.15 |
---|---|
캠페인 이메일 발송 유효성 검사 및 메일 서버 도메인 (0) | 2015.04.30 |
JSONObject, JSONArray 사용 방법 (0) | 2015.04.21 |
Spring Scheduler(스케쥴러) 사용 (0) | 2015.04.21 |
STS (Spring Tool Suite) 배포 폴더 (2) | 2015.03.03 |