본문 바로가기

Trouble Shootings

mvn clean package 에러: Failed to load ApplicationContext

요즘 작업중인 토이프로젝트가 있다. 해당 프로젝트의 소스수정, 개발계 배포 과정은 아래와 같다.

  1. 개발자가 local에서 소스를 수정하고, github에 올린다.
  2. jenkins를 통해 아래 순서대로 개발계 빌드를 수행한다
    1. github에서 소스를 내려받는다.
    2. mvn clean package를 통해 새로 빌드된 jar 파일을 생성한다.
    3. 새로 빌드된 jar 파일을 사용하는 ubuntu server 서비스를 실행한다.

평소에 잘 되던 프로세스 였는데, 새로운 코드를 반영하고 2-2 과정에서 에러가 발생하였다.

java.lang.IllegalStateException: Failed to load ApplicationContext

 

알아보니 mvn clean package 이후, default 환경에서 jar 파일이 실행되는데 해당 profile인 서비스 구현체가 없어서 발생한 에러였다. 아래 myService에 "default" 환경에서 유요한 MyService 구현체가 들어가야하는데, "mockup" 환경의 구현체밖에 없어서 발생한 에러이다.

...
@Autowired
private MyService myService;
...
@Profile(value = {"mockup"})
@Service
public class MockupMyServiceImple implements MyService {
	...
}

 

그래서 해당 서비스가 "default" 환경에서도 유효하도록 수정하였고, 에러가 발생하지 않았다.

@Profile(value = {"default", "mockup"})
@Service
public class MockupMyServiceImple implements MyService {
	...
}
728x90