无法写入JSON:找不到类java.io.FileDescriptor的序列化程序,也找不到用于创建BeanSerial



我正在尝试使用spring-rest模板(它接受post,但不接受JSON)和spring MultiPart文件上传来完成并https发布到网站。

收到以下错误,当这样做时,

org.springframework.http.coverter.HttpMessageNotWritableException:无法写入JSON:找不到类java.io.FileDescriptor的序列化程序,也找不到用于创建BeanSerializer的属性。

MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>();
formData.add("NUMBER", "ABC");
formData.add("ID", "123");
formData.add("FILE",file); // this is spring multipart file
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "multipart/form-data"); 
headers.set("Accept", "text/plain"); 
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<MultiValueMap<String, Object>>(formData, headers);
RestTemplate restTemplate = getRestTemplate();
String result  = restTemplate.postForObject(uploadUri, requestEntity, String.class);

我也面临同样的问题,当我使用ByteArrayResource而不是FileSystem资源时,我能够解决这个问题。我使用ByteArrayResource将多部分文件的字节内容复制到httprequest实体中。

Iterator<String> itr = request.getFileNames();
MultipartFile file = request.getFile(itr.next());
//Set the headers
................
formData .add("files", new ByteArrayResource(file.getBytes()));

您可以参考此链接以获取更多信息

将gradle插件更新到版本

id "io.spring.dependency-management" version "1.0.9.RELEASE"

帮助我

最新更新