最近在使用OpenFeign遇到的问题
使用自定义的类会出现这个错误
配置一下openFeign
import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.support.SpringEncoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FeignMultipartSupportConfig {
@Bean
Encoder feignFormEncoder(ObjectFactory<HttpMessageConverters> converters) {
return new SpringFormEncoder(new SpringEncoder(converters));
}
@Bean
public feign.Logger.Level multipartLoggerLevel() {
return feign.Logger.Level.FULL;
}
}
feign 被调用端:
@RestController
@RequestMapping("/base/rpc")
@Api(tags = "用户基础服务")
@Log4j2
public class BaseServiceRPC {
@Autowired
NoteService noteService;
@PostMapping("/get/one/note/userid")
@ApiOperation("查询一个文章的id")
public ResponseResult getANote(@RequestBody @Valid GetOneNoteDTO getOneNoteDTO) {
return noteService.getOneNotesRpc(getOneNoteDTO);
}
}
feign 调用端
/**
* @program: mk-cloud
* @description: base的远程调用
* @author: lizhiyong
* @create: 2022-03-22 22:46
**/
@FeignClient(value = "mk-base", fallback = MkBaseFeignFallBack.class)
public interface MkBaseFeign {
@RequestMapping(value = "/base/rpc/get/one/note/userid", method = RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseResult getANote(@RequestBody GetOneNoteDTO getOneNoteDTO);
}
注意: 各服务之间如果有鉴权啥的,记得添加头信息