公司項目作一個關於程序報錯,實現給管理髮送郵件提醒時使用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