springcloud使用feign实现服务间条用,参数数据太大,没法调用成功解决方法

公司项目作一个关于程序报错,实现给管理发送邮件提醒时使用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

相关文章
相关标签/搜索