在做微服务项目的时候,调用Feign接口将数据存储进ES中发现传输过去的值全变成了null:
附上debug断点传送数据前和传送数据后的结果图,
1.调用前,对象中含有值:
2.通过Feign接口调用其他的微服务,存储数据到ES后,接收到的对象中的值全为null:
3.传输前数据正常,而传输后数据就变为了null, 很明显结果是出在过程中了,也就是Feign接口环节出了问题,修改前后Feign接口代码如下:
@FeignClient(value = "search-server", fallbackFactory = SearchFeignClientFallbackFactory.class)
public interface SearchFeignClient {
@RequestMapping(value = "/saveCourse", method = RequestMethod.POST)
//AjaxResult saveCourse(CourseDoc courseDoc);修改前
AjaxResult saveCourse(@RequestBody CourseDoc courseDoc);// 这是修改后
}
错误分析总结:
Feign 底层是基于HTTP,在接收对象的时候需要加上注解@RequestBody