如何将文件从Quarkus发送到Spring Boot应用程序?

问题描述

我正在编写一个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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...