公司项目作一个关于程序报错,实现给管理发送邮件提醒时使用springcloud的feign调用接口时老是走断路器git
通过分析得出,调用接口时传递的参数过大,没法调用成功,解决方法以下:github
1:引入springcloud关于feign依赖spring
<dependency> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form</artifactId> <version>3.0.3</version> </dependency> <dependency> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form-spring</artifactId> <version>3.0.3</version> </dependency>
2:编写配置项app
@Configuration public class CoreFeignConfiguration { @Autowired private ObjectFactory<HttpMessageConverters> messageConverters; @Bean @Primary @Scope(SCOPE_PROTOTYPE) Encoder feignFormEncoder() { return new SpringFormEncoder(new SpringEncoder(this.messageConverters)); } @Bean public Logger.Level logger() { return Logger.Level.FULL; } }
3:启动类上添加注解学习
@EnableTransactionManagement
4:接口调用使用注解this
@FeignClient(value = "sendemail", fallback = SendEmailHystrix.class, configuration = CoreFeignConfiguration.class) public interface SendEmail { @RequestMapping(method = RequestMethod.POST, value = "sendemail/commonMail" ,consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) Object sendEmail(@RequestParam("addTo") String addTo, @RequestParam("setSubject") String setSubject, @PathVariable("details") String details); }
关注公众号,领取学习资料spa