백엔드 개발을 진행하거나 프로젝트를 톰캣에 올려서 구동시킬 때, 자주 발생하는 오류 중 하나다
이번 포스팅에서는 해당 오류 발생에 대한 해결 방법을 제시한다
1
*mapper.xml 파일에 오탈자를 확인하자
사실 이경우가 대부분의 오류 발생 원인이다
아래와 같이 예를 들 수 있다
--DAO Layer
public UserVO findUser(String id)throws SQLException;
--MAPPER
<select id="findUser" resultType="main.com.basic.vo.userVO">
select * from TB_USER where user_id=#{id}
</select>
|
cs |
DAO에서 리턴타입을 UserVO로 받고 있고,
Mapper에서는 resultType을 선언할 때 userVO 라고 선언하고 있다
이런 경우 resultType 내부에 userVO라고 선언한 파일이 존재하지 않아서 해당 오류가 출력된다
혹시 이런 오탈자가 존재한다면 고쳐주자
2
JAVA VM Arguments 설정
이 경우는 JAVA 프로그래밍을 하면서 운영 서버와 개발 서버를 구분하여 관리할 때
서버 환경이 변함에 따라 프로젝트 설정을 변경해줘야 하는 경우가 있다
그럴 때, JVM에 환경 변수를 전달함으로써 개발 서버와 운영 서버를 구분할 수 있다
그럴 때 설정해야하는 것이 JAVA VM Arguments 다
2.1 내 피시(로컬) 서버에서 설정
Servers 탭에서 설치된 톰캣 더블 클릭
Open launch configuration 클릭
설명을 들기위한 예시이며
빨간 박스 내부의 문구처럼, 변수를 JVM에 전달해줄 수 있다
Spring.properties 값을 dev로 지정해서 전달해주면, 개발 환경을 구성하는데 사용할 수 있다
시스템 환경을 구성하는 페이지에서 Spring.properties 처럼 전달받은 인수가 사용되는지 살펴보고
환경을 구성할 때, 설정해주자
2.2 운영 서버 (linux, window..)에서 설정하기
서버에 접속 후, 톰캣이 설정된 경로의 bin 폴더로 이동한다
쉘 스크립트 파일을 하나 생성해서 해당 인수 값을 세팅해주어야한다
vi setenv.sh
export JAVA_OPTS="-Dspring.profiles.active=dev"
|
cs |
vi setenv.sh 를 입력해 쉘 스크립트를 오픈한 후,
밑에 줄을 추가해주고 저장( 명령어 : wq! ) 후 나오자
3
project clean, tomcat clean
이전에 수정했던 내용이 빌드 될 때 반영되지 않았을 수 있다
상단 Project 메뉴 -> Clean... -> 실행
Tomcat 오른쪽 마우스 클릭 -> Clean... -> 실행
해보자