gpt4 book ai didi

java - 无法写入 JSON : No serializer found for class java. io.FileDescriptor 并且未发现用于创建 BeanSerializer 的属性

转载 作者:行者123 更新时间:2023-12-02 02:36:01 25 4
gpt4 key购买 nike

我正在尝试使用 Spring Rest 模板(它接受帖子,但不接受 JSON)通过 Spring MultiPart 文件上传将 https 发布到网站。

这样做时收到以下错误,

org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: No serializer found for class java.io.FileDescriptor and no properties discovered to create 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()));

您可以引用这个link获取更多信息

关于java - 无法写入 JSON : No serializer found for class java. io.FileDescriptor 并且未发现用于创建 BeanSerializer 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33740141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com