..
Troubleshooting: FeignClient에서 PATCH 메소드 사용하기
1. 발생 에러 메세지
OpenFeign을 사용하여 외부 서비스를 호출할 때 PATCH 메소드를 사용하면 다음과 같은 예외가 발생할 수 있습니다.
feign.RetryableException: Invalid HTTP method: PATCH executing PATCH http://...
2. 원인 분석
FeignClient가 내부적으로 기본 사용하는 HttpURLConnection은 꽤 오래전에 설계된 클래스로, 비교적 최신 사양인 PATCH 메소드를 표준으로 지원하지 않기 때문입니다.
3. 해결 방법: OkHttpClient 연동
이 문제를 해결하려면 PATCH를 공식적으로 지원하는 OkHttpClient나 Apache HttpClient를 Feign의 물리적인 통신 클라이언트로 교체해 주어야 합니다.
단계별 적용 방법
- 의존성 추가:
feign-okhttp라이브러리를 추가합니다.implementation 'io.github.openfeign:feign-okhttp' - Bean 설정: 스프링 빈으로
OkHttpClient를 등록하면 Feign이 이를 자동으로 감지하여 사용합니다.@Configuration public class FeignConfig { @Bean public OkHttpClient okHttpClient() { return new OkHttpClient(); } }
최근의 MSA 환경에서는 PATCH를 통한 부분 업데이트가 빈번하므로, Feign 사용 시 초기부터 OkHttpClient 연동 설정을 미리 해두는 것을 권장합니다.