spring – Feign Client Eureka POST请求正文
作者:互联网
我正在尝试使用Feign和Eureka将服务器A的发布请求转发到服务器B.这两个服务器都被Eureka成功地取消了.
这有效:
@Feignclient
public interface MyFeignClient {
@RequestMapping(value = "test", = RequestMethod.POST, consumes = "application/json")
ResponseEntity<String> theActualMethod(
HttpServletRequest request,
@RequestHeader("firstHeader") String header1,
@RequestHeader("secondHeader") byte[] header2);
}
但是,当我将第二个参数更改为@RequestBody以便读取POST请求内容时,我得到一个异常:
java.lang.IllegalStateException: Method has too many Body parameters: public abstract org.springframework.http.ResponseEntity MyFeignClient.theActualMethod(javax.servlet.http.HttpServletRequest,java.lang.String,byte[])
解决方法:
问题是Feign接口中的方法不能有多个“通用”参数.您可以拥有任意数量的标头参数,但不能超过一个作为正文.由于@RequestBody没有做任何事情,因此除了HttpServletRequest请求变量之外,它不被视为标题而是另一个变量.
所以我不得不改变我的业务逻辑只有一个参数.
标签:rest,spring,microservices,netflix-eureka,netflix-feign 来源: https://codeday.me/bug/20190516/1116061.html