feignclient에서 IllegalStateException: Method has too many Body parameters 오류 해결

kihoo_ni·2024년 8월 4일

북스토어프로젝트

목록 보기
14/14

@FeignClient(name = "book-store-coupon", url = "http://localhost:9494", configuration = FeignClientConfig.class)
public interface UserAndCouponFeignClient {@PostMapping("/coupons/{couponId}/users")
ResponseEntity<UserAndCouponResponseDTO> createUserAndCoupon(@PathVariable("couponId") Long couponId, @RequestBody UserAndCouponRequestCreateDTO requestDTO,String userId);

}



Caused by: java.lang.IllegalStateException: 
Method has too many Body parameters: 
public abstract org.springframework.http.ResponseEntity com.nhnacademy.bookstorefront.userandcoupon.feignclient.UserAndCouponFeignClient.createUserAndCoupon(java.lang.Long,com.nhnacademy.bookstorefront.userandcoupon.domain.dto.request.UserAndCouponRequestCreateDTO,java.lang.String)

프로젝트 진행중에 feignclient 적용하여 쿠폰생성api를 불러오는중에 다음과같은 파라미터 오류가 나옴.
해당원인은 feignclient는 단독으로 String userId 매개변수를 줄 수가 없음.
따라서 @requestparam, @pathvariable을 주거나 아니면 해당 매개변수를 dto에 담아서 보내는 방식을 사용해야한다.

@PostMapping("/coupons/{couponId}/users")
	ResponseEntity<UserAndCouponResponseDTO> createUserAndCoupon(@PathVariable("couponId") Long couponId, @RequestBody UserAndCouponRequestCreateDTO requestDTO);

본인은 dto에 담아서 보내는걸로함.
이렇게하니 컴파일 오류가 안나고 정상작동함.

0개의 댓글