inflearn logo
강의

講義

知識共有

サーバー開発者課題選考完全ガイド - 1編

NaverClientTest 질문있습니다.

解決済みの質問

179

zzzzz

投稿した質問数 192

0

ApplicationContext 로드 실패

gpt에서 NaverClientTest파일에서 파일 위치 명확하게 하라고 해서 @EnableFeignClients(basePackages = "com.livray.feign") 이부분을 추가했더니 아래와 같은 에러가 나왔습니다.

Caused by: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'default.NaverClientTest.FeignClientSpecification' defined in null: Cannot register bean definition [...] since there is already [...] bound.

그래서 @EnableFeignClients(basePackages = "com.livray.feign") 이부분을 지웠더니 다시 ApplicationContext 로드 실패에러가 나옵니다. 코드는 강의 하단에 있는 부분을 붙여놨습니다. 환경변수는 제대로 설정해놓았는데 공유해야해서 dummy로 설정해 놓았습니다.

아래는 코드링크입니다.

 

java spring spring-boot database

回答 2

0

J Tech

안녕하세요 zzzzz님~

(일단 디버깅같은경우는 에러메세지의 제일 하단의 cause를 확인해보시면 될거같아요)

첨부주신 내용을보니 잘못 설정되어있는 부분들이 있네요!

테스트코드의 구성은 아래와 같은 형식으로 해보시겠어요?

@SpringBootTest(classes = XXXClientTest.TestConfig.class)
@ActiveProfiles("test")
class XXXClientTest  {

    @EnableAutoConfiguration
    @EnableFeignClients(clients = XXXClient.class)
    static class TestConfig{}

그리고 application-test.yml에는 active profile이 local로 들어가있네요. 요 설정도 제거해주시구요!

그래도 안된다면 제 메일로 다시 문의를 부탁드리고, 강의에 나와있는대로 (혹은 강의자료 참고) 따라서 진행해보시면 해결될것으로 보입니다.

감사합니다!

 

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. zzzzz님,

ApplicationContext 로드 실패와 관련하여 발생하는 문제는 여러 가지 이유로 인해 발생할 수 있습니다. 특히 FeignClient 설정과 관련된 문제들은 몇 가지 일반적인 원인에서 비롯될 수 있습니다.

발생할 수 있는 문제점:

  1. Feign Client의 중복 정의: @EnableFeignClients 어노테이션을 사용할 때, 지정된 basePackages에 이미 등록된 FeignClient가 있을 경우 중복 등록으로 인해 오류가 발생할 수 있습니다.

  2. 설정 파일 및 환경 변수 확인: 코드가 정확하더라도, 환경 설정 또는 ApplicationContext의 설정이 올바르게 정의되어 있지 않을 경우 문제가 발생할 수 있습니다.

해결방법 제안:

  1. Feign Client의 중복 제거: 기존에 존재하는 FeignClient의 정의가 중복 등록되지 않았는지 확인하세요. 등록하는 패키지를 구체적으로 지정하여 필요한 클라이언트만 로드되도록 합니다.

  2. @EnableFeignClients 위치 확인: @EnableFeignClients를 메인 Spring Boot 애플리케이션 클래스에 넣어보세요. 설정되지 않은 곳에 있을 때 발생할 수 있는 오류일 수 있습니다.

  3. Spring Configuration 활용: 만약 여러 구성이 필요한 경우, @Configuration 클래스를 만들어 그 속에서 @EnableFeignClients를 내부적으로 선언하거나, 각 FeignClient마다 필요한 환경 변수와 설정을 넘겨줄 수 있습니다.

  4. application.properties 확인: 환경 변수나 설정 파일에서 잘못 설정된 부분이 없는지 확인 바랍니다. 특히, FeignClient가 사용하는 서버 주소나 환경 변수가 잘못 설정되었는지 체크하세요.

관련된 예시와 비슷한 문제 사례를 다룬 기존의 질문 답변을 통해 더 많은 도움을 얻으실 수 있습니다. 아래 링크를 참조해 주시기 바랍니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

NaverBookRepository.class 의 위치에 따른 모듈간의 의존성에 대해 질문드립니다.

1

32

2

패키지 vs 모듈 선택 기준

0

51

2

Kotlin 테스트 프레임워크

0

82

2

import 오류?

0

71

2

JSON 역직렬화

0

66

2

Spring Cloud 버전 관리 문제

0

271

2

AsyncExcutor 설정값 질문

0

82

2

17강 api서버구현2 질문있습니다.(ai답변이 이상합니다.)

0

117

2

16강 api서버구현 질문있습니다.

0

77

2

14번쨰 부분 중 질문드립니다..<ai답변으로 해도 안되요>

0

144

2

.

0

144

1

서비스에 @Transactional 애노테이션을 사용하시지 않는 이유가 궁금합니다

0

156

2

멀티모듈 구성 질문입니다.

0

209

3

멀티모듈 구성 강의에 대해 질문이 있습니다.

0

214

3

SPOCK 의존성 추가 후 Generate Test 옵션 미노출

0

202

3

멀티모듈 지식 습득에 관하여 질문 드립니다.

0

250

2

Async Config 테스트컨트롤러의 코드의 동작이 안되는거 같습니다.

0

223

3

author 배열이 비어서 오는 경우가 있으니 참고하세요.

0

190

3

커밋 끊으면서 해주시는거 너무 좋네요.

1

160

2

비즈니스 로직 담당 서비스

0

198

2

모의과제 소개

0

179

2

cqrs에 관하여

1

256

2

멀티모듈 문의드립니다.

0

264

2

클린한 아키텍쳐에 관하여

1

234

2