在选择springcloud作为微服务框架时,我们使用远程RPC调用接口,此时我们选择Feign声明式服务调用,简单易用,
可以直接继承接口,注入使用,那此时在文件上传时,变出现了问题,FeignClient调用接口时不支持上传文件;于是找到了githup找到一个开源的工具包,
引入在pom文件中加入
<!--解决不能传递表单参数的问题-->
<dependency>
<groupId></groupId>
<artifactId>feign-form</artifactId>
<version>3.3.0</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>feign-form-spring</artifactId>
<version>3.3.0</version>
</dependency>
在使用FeignClient时带上参数
@FeignClient(name = "feign-service",configuration = )
public interface FeignService{
@RequestMapping(value = "/uploads", method = , consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
String uploads(@RequestPart("file") MultipartFile file);
}
注意,参数注解是@RequestPart
注意,注意,因为Springcloud的对应的feign-form版本不对则会出现以下问题,
Springboot version(1.)
Springcloud version(Dalston.RC1)
feign-form对应的版本是<version>3.3.0</version>,
而我使用的是spring boot() srpingcloud(Greenwich.SR1)
feign-form对应的版本是<version>3.3.0</version>,
就不会出现这种问题了,版本不对称,找起来也费劲
: the request was rejected because no multipart boundary was found
at $FileItemIteratorImpl.<init>(:840) ~[tomcat-embed-core-8.5.:8.5.16]
at (:256) ~[tomcat-embed-core-8.5.:8.5.16]
at (:280) ~[tomcat-embed-core-8.5.:8.5.16]
at (:2871) ~[tomcat-embed-core-8.5.:8.5.16]
at (:2780) ~[tomcat-embed-core-8.5.:8.5.16]
at (:1084) ~[tomcat-embed-core-8.5.:8.5.16]
at (:93) ~[spring-web-4.3.:4.3.]
at .<init>(:86) ~[spring-web-4.3.:4.3.]
at (:79) ~[spring-web-4.3.:4.3.]
at (:1104) ~[spring-webmvc-4.3.:4.3.]
at (:936) ~[spring-webmvc-4.3.:4.3.]
at (:901) ~[spring-webmvc-4.3.:4.3.]
at (:970) ~[spring-webmvc-4.3.:4.3.]
at (:872) ~[spring-webmvc-4.3.:4.3.]
at (:661) ~[tomcat-embed-core-8.5.:8.5.16]
at (:846) ~[spring-webmvc-4.3.:4.3.]
at (:742) ~[tomcat-embed-core-8.5.:8.5.16]
at (:231) ~[tomcat-embed-core-8.5.:8.5.16]
at (:166) ~[tomcat-embed-core-8.5.:8.5.16]
at (:52) ~[tomcat-embed-websocket-8.5.:8.5.16]
at (:193) ~[tomcat-embed-core-8.5.:8.5.16]
at (:166) ~[tomcat-embed-core-8.5.:8.5.16]
at (:55) ~[spring-boot-1.5.:1.5.]
at (:107) ~[spring-web-4.3.:4.3.]
at (:193) ~[tomcat-embed-core-8.5.:8.5.16]
at (:166) ~[tomcat-embed-core-8.5.:8.5.16]
at (:110) ~[spring-boot-actuator-1.5.:1.5.]
at (:107) ~[spring-web-4.3.:4.3.]
at (:193) ~[tomcat-embed-core-8.5.:8.5.16]
at (:166) ~[tomcat-embed-core-8.5.:8.5.16]
at (:99) ~[spring-web-4.3.:4.3.]
at (:107) ~[spring-web-4.3.:4.3.]
at (:193) ~[tomcat-embed-core-8.5.:8.5.16]
at (:166) ~[tomcat-embed-core-8.5.:8.5.16]
at (:105) ~[spring-web-4.3.:4.3.]
at (:107) ~[spring-web-4.3.:4.3.]
at (:193) ~[tomcat-embed-core-8.5.:8.5.16]
at (:166) ~[tomcat-embed-core-8.5.:8.5.16]
at (:81) ~[spring-web-4.3.:4.3.]
at (:107) ~[spring-web-4.3.:4.3.]
at (:193) ~[tomcat-embed-core-8.5.:8.5.16]
at (:166) ~[tomcat-embed-core-8.5.:8.5.16]
at (:197) ~[spring-web-4.3.:4.3.]
at (:107) ~[spring-web-4.3.:4.3.]
at (:193) ~[tomcat-embed-core-8.5.:8.5.16]
at (:166) ~[tomcat-embed-core-8.5.:8.5.16]
at (:106) ~[spring-boot-actuator-1.5.:1.5.]
at (:107) ~[spring-web-4.3.:4.3.]
at (:193) ~[tomcat-embed-core-8.5.:8.5.16]
at (:166) ~[tomcat-embed-core-8.5.:8.5.16]
at (:198) ~[tomcat-embed-core-8.5.:8.5.16]
at (:96) [tomcat-embed-core-8.5.:8.5.16]
at (:478) [tomcat-embed-core-8.5.:8.5.16]
at (:140) [tomcat-embed-core-8.5.:8.5.16]
at (:80) [tomcat-embed-core-8.5.:8.5.16]
at (:87) [tomcat-embed-core-8.5.:8.5.16]
at (:342) [tomcat-embed-core-8.5.:8.5.16]
at .http11.(:799) [tomcat-embed-core-8.5.:8.5.16]
at (:66) [tomcat-embed-core-8.5.:8.5.16]
at $(:868) [tomcat-embed-core-8.5.:8.5.16]
at $(:1455) [tomcat-embed-core-8.5.:8.5.16]
at (:49) [tomcat-embed-core-8.5.:8.5.16]
at (:1142) [na:1.8.0_111]
at $(:617) [na:1.8.0_111]
at $(:61) [tomcat-embed-core-8.5.:8.5.16]
at (:745) [na:1.8.0_111]