인프런 커뮤니티 질문&답변
config-service를 터미널에서 실행할때 native, git 설정파일 인식 문제
작성
·
143
답변 3
0
0
제 질문을 잘못 이해하신것 같습니다. ㅠ
제 질문은 강의의 내용과 관련하여 config-service 를 터미널에서 실행시키는 경우...
(mvn spring-boot:run 혹은 java -jar ./target/config-service-0.0.1-SNAPSHOT.jar 실행 모두)
config-service의 application.yml의 값에 설정된 아래의 값..
즉, search-locations 의 native-file-repo 디렉토리의 값을 가져오지 못한다는것입니다.
spring:
application:
name: config-service
rabbitmq:
host: 127.0.0.1
port: 5672
username: guest
password: guest
profiles:
active: native
cloud:
config:
server:
native:
search-locations: file://${user.home}/development/study/springcloud/native-file-repo
아래는 정상적으로 native-file-repo 디렉토리의값이 로드되었을때의 config-service 의 로그입니다.
2021-07-27 17:06:27.885 INFO 21223 --- [nio-8888-exec-1] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: Config resource 'file [/Users/bluesky/development/study/springcloud/native-file-repo/ecommerce.yml]' via location 'file:///Users/bluesky/development/study/springcloud/native-file-repo/'
2021-07-27 17:06:27.885 INFO 21223 --- [nio-8888-exec-1] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: Config resource 'file [/Users/bluesky/development/study/springcloud/native-file-repo/application.yml]' via location 'file:///Users/bluesky/development/study/springcloud/native-file-repo/'
2021-07-27 17:06:32.293 INFO 21223 --- [nio-8888-exec-2] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: Config resource 'file [/Users/bluesky/development/study/springcloud/native-file-repo/ecommerce.yml]' via location 'file:///Users/bluesky/development/study/springcloud/native-file-repo/'
2021-07-27 17:06:32.294 INFO 21223 --- [nio-8888-exec-2] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: Config resource 'file [/Users/bluesky/development/study/springcloud/native-file-repo/application.yml]' via location 'file:///Users/bluesky/development/study/springcloud/native-file-repo/'
2021-07-27 17:06:38.071 INFO 21223 --- [nio-8888-exec-3] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: Config resource 'file [/Users/bluesky/development/study/springcloud/native-file-repo/user-service.yml]' via location 'file:///Users/bluesky/development/study/springcloud/native-file-repo/'
2021-07-27 17:06:38.071 INFO 21223 --- [nio-8888-exec-3] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: Config resource 'file [/Users/bluesky/development/study/springcloud/native-file-repo/application.yml]' via location 'file:///Users/bluesky/development/study/springcloud/native-file-repo/'
2021-07-27 17:06:51.059 INFO 21223 --- [nio-8888-exec-4] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: Config resource 'file [/Users/bluesky/development/study/springcloud/native-file-repo/user-service.yml]' via location 'file:///Users/bluesky/development/study/springcloud/native-file-repo/'
2021-07-27 17:06:51.059 INFO 21223 --- [nio-8888-exec-4] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: Config resource 'file [/Users/bluesky/development/study/springcloud/native-file-repo/application.yml]' via location 'file:///Users/bluesky/development/study/springcloud/native-file-repo/'
위의 정상적인 로그값은 은 InteliJ에서 실행한 것이며 Terminal에서 실행했을때는 위와같은 정상적인 로그가 보이지 않습니다.
그렇기 때문에 Terminal에서 config-service를 실행하면 native-file-repo 디렉토리내에서 yml이 정상로드가 되지 않아 user-service에서 로그인이 되지 않는다는것이 원질문글의 내용이었습니다.
그리고 기타 다른 microservice에서도 config-service의 설정값이 필요한 부분에선 에러가 납니다.
무엇이 문제일까요?
Mac의 Terminal에서 ${user.home} 을 인지하지 못해서 일까라는 생각으로 ${user.home} 변수 대신 디렉토리경로를 절대경로 문자열로 직접 등록해봤지만 이것은 관계가 없었습니다.
config-service의 profiles는 native로 Terminal로 실행하든 혹은 Intelij로 실행하든 관계없이 잘 찍힙니다.
그리고 config-service에서는 어떤 에러도 출력되지 않습니다.
user-service의 profile은 default 로 현 상황과는 아무관계 없습니다.
며칠째 이걸로 헤매고 있는데 해결이 안되고 있습니다.
0
안녕하세요, 이도원입니다.
IntelliJ와 일반 Terminal에서 실행할 때의 차이점은 여러가지 있을 수 있지만, profile의 지정과 컴파일의 방법 등이 제일 다른 것 같습니다. 예를들어, Terminal에서
$ java -jar [패키지된 파일명].jar
와 같이 실행하기 위해서는 먼저 패키지가 생성된 다음 실행되어야 합니다. (위와 같이 실행할 경우는 profile은 default)
이에 비해, IntelliJ에서는 애플리케이션을 실행할 때 profile을 "Edit Configurations" 항목에서 지정해 놓고, 계속 사용할 수 있으며, 실행 시 자동으로 빌드가 되어 사용됩니다.
user-service 애플리케이션을 기동하게 되면, 출력되는 로그 상단에 (Spring Boot라는 배너 바로 다음 부근) 현재 애플리케이션이 어떤 profile로 기동되었는지, 어떤 config 설정이 되었는지 출력됩니다. Terminal에서 오류가 발생하신다면 먼저, 위 항목을 확인하시고 지정한 config가 사용되었는지 확인해 보시기 바랍니다.
감사합니다.





