我想用 Feign 上传文件,如下所示:
@FeignClient(name = "GDC", url = "${gdc.url}", configuration = ApiConfig.class)
public interface GDCClient {
@RequestMapping(method = RequestMethod.POST, value = "/v1/document", consumes
="multipart/form-data")
Response saveDocument(@RequestPart(value = "file") MultipartFile fileSaveDocumentDTO,
@RequestPart(value = "document") SaveDocumentDTO saveDocumentDTO);
}
但是当我调用 saveDocument 时出现此错误:
*java.lang.NoSuchFieldError: MULTIPART_RELATED
at org.springframework.cloud.openfeign.support.SpringEncoder.isMultipartType(SpringEncoder.java:227) ~[spring-cloud-openfeign-core-2.2.8.RELEASE.jar:2.2.8.RELEASE]
at org.springframework.cloud.openfeign.support.SpringEncoder.encode(SpringEncoder.java:102) ~[spring-cloud-openfeign-core-2.2.8.RELEASE.jar:2.2.8.RELEASE]
at org.springframework.cloud.openfeign.support.PageableSpringEncoder.encode(PageableSpringEncoder.java:101) ~[spring-cloud-openfeign-core-2.2.8.RELEASE.jar:2.2.8.RELEASE]*
有人可以帮助我吗? :)
OpenFeign 依赖类
org.springframework.cloud.openfeign.support.SpringEncoder
包含来自 MULTIPART_RELATED
的常量 org.springframework.http.MediaType
。 org.springframework.cloud:spring-cloud-starter-openfeign:2.2.8.RELEASE
和上面的版本在 SpringEncoder 类中包含这个 MULTIPART_RELATED
。我正在使用 2.2.7.RELEASE
问题在于 openfeign lib 版本与 spring-web lib 版本不兼容,因此找不到 org.springframework.http 包的 MediaType 类中应有的 MediaType.MULTIPART_RELATED 常量。
要解决该问题,请使用与您的 spring-web 库兼容的 openfeign 库版本。
升级spring版本至少5.2.5