본문 바로가기

개발/BACK

[SpringFramework] Error creating bean with name '...' defined in file 해결방법 이유들

728x90

 


 

 

백엔드 개발을 진행하거나 프로젝트를 톰캣에 올려서 구동시킬 때, 자주 발생하는 오류 중 하나다

 

이번 포스팅에서는 해당 오류 발생에 대한 해결 방법을 제시한다

 

 

 


 

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... -> 실행

 

해보자  

728x90