如何将文件从quarkus发送到spring引导应用程序?

vyswwuz2  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(259)

我正在编写一个quarkus微服务,用于与主spring引导应用程序通信。
为了调用spring引导应用程序,我基于这个quarkus教程编写了一个rest客户机,它在一些端点上运行良好。当我尝试将一个文件从quarkus上载到spring boot时,问题发生了,我无法使它正常工作。我遵循了另一个教程来处理多部分请求。
这是我的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 . 我错过了什么?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题