问题描述
我正在编写一个Quarkus微服务,旨在与主Spring Boot应用程序进行通信。
为了调用Spring Boot应用程序,我基于此Quarkus tutorial编写了一个REST客户端,它在某些端点上工作正常。 当我尝试从Quarkus上传文件到Spring Boot时出现问题,我无法使其正常工作。我遵循this other tutorial处理多部分请求。
这是我在Quarkus应用程序中的多部分对象:
public class MultipartBody {
@FormParam("file")
@PartType(MediaType.APPLICATION_OCTET_STREAM)
public InputStream file;
@FormParam("fileName")
@PartType(MediaType.TEXT_PLAIN)
public String fileName;
}
这是Quarkus中REST客户端上的端点:
@POST
@Path("/file")
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
ProjectFile upload(@HeaderParam(AUTH_HEADER) String apiToken,@MultipartForm MultipartBody data);
这是我构建MultipartBody对象的方式:
InputStream stream = IOUtils.toInputStream(contentString,Charset.defaultCharset());
MultipartBody data = MultipartBody.builder()
.file(stream)
.fileName(filename)
.build();
Spring Boot应用程序中的端点:
@PostMapping("/file")
public ProjectFile receive(@RequestParam MultipartFile inputFile)
抛出错误,提示未提供inputFile
:
Required request part 'inputFile' is not present - org.springframework.web.multipart.support.MissingServletRequestPartException - Required request part 'inputFile' is not present
如果我将@RequestParam
更改为@RequestBody
,则inputFile
参数始终为null
。我想念什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)