이슈

Tomcat 로케일 이슈

HBean_ 2024. 7. 21. 15:39

Backgroud

업무 중에 로컬 환경에서는 문제없이 API가 동작하지만, 개발 환경(NCP)에서는 프로시저 실행 중 Oracle 에러가 발생하는 이슈가 발생했습니다. 

발새한 에러는 ORA-01861: literal does not match format string였고, 
문자열 형태로 받은 날짜 데이터 (ex. '2024-07-01')를 TO_DATE 메서드 없이 자동으로 날짜 타입으로 변경될 것을 예상하고 사용한 프로시저에서 에러가 발생하고 있었습니다.

두 환경은 같은 Oracle DB를 사용하고 있기 때문에, 왜 특정 환경에서만 에러가 발생하는지 찾아봤습니다.

 

 

 

해결 방법

원인은 톰캣 로케일 이슈였습니다. 톰캣 언어 설정이 영어로 되어 있어 '2024-07-01' 이런 문자열 형태의 날짜 데이터를 자동으로 변환하지 못했습니다. 이에 톰캣 언어 설정을 추가했습니다.

 

1. tomcat.service 파일에 -Duser.language=ko -Duser.region=KR 추가하기

 

sudo nano /etc/systemd/system/tomcat.service

 

 

2. 재시작

sudo systemctl daemon-reload  // 시스템 데몬 다시 로드

sudo systemctl restart tomcat // tomcat 재시작