我对Springboot很熟悉。我正在创建这个基于微服务的架构,我正在尝试使用RestTemplate来使用这个文件上传服务。
服务端API代码基本上是
@PostMapping("/upload")
public ResponseEntity<?> fileUpload(@RequestParam String appender,
@RequestParam("file") MultipartFile file) {
...
}
现在在客户端
@覆盖
public String attachFile(String id,MultipartFile file){
字符串状态= null;
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
MultiValueMap<String, Object> upParams = new LinkedMultiValueMap<String,
Object>();
upParams.add("appender", id);
upParams.add("file", file.getOriginalFilename());
HttpEntity<MultiValueMap<String, Object>> request =
new HttpEntity<MultiValueMap<String, Object>>(upParams, headers);
String response = restTemplate.postForObject(uploadEndPoint, request,
String.class);
return status;
}
我收到此错误
org.springframework.web.client.HttpServerErrorException: 500
如果我将线路改为下面 upParams.add(&#34; file&#34;,file);
我收到错误
&#34;无法编写JSON:找不到类java.io.FileDescriptor的序列化程序,也没有发现创建BeanSerializer的属性(为了避免异常,请禁用SerializationFeature.FAIL_ON_EMPTY_BEANS);嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:没有为类java.io.FileDescriptor找到序列化器,也没有发现创建BeanSerializer的属性(为了避免异常,禁用SerializationFeature.FAIL_ON_EMPTY_BEANS)(通过引用链:org.springframework.web) .multipart.support.StandardMultipartHttpServletRequest $ StandardMultipartFile [\&#34;的inputStream \&#34;] - &GT; java.io.FileInputStream中[\&#34; FD \&#34;])