0

メインの Spring Boot アプリケーションと通信することを目的とした Quarkus マイクロサービスを作成しています。

Spring Boot アプリを呼び出すために、このQuarkus チュートリアルに基づいて REST クライアントを作成しましたが、一部のエンドポイントでは正常に動作しています。この問題は、Quarkus から Spring ブートにファイルをアップロードしようとすると発生し、正常に動作しません。この他のチュートリアルに従って、マルチパート リクエストを操作しました。

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

@RequestParamforを変更すると@RequestBodyinputFileパラメータは常にになりますnull。私は何が欠けていますか?

4

1 に答える 1