0

我有 2 个应用程序在本地的不同端口中运行。代码如下所示:

服务1:

public class Service1Controller {

@PostMapping(
            consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE})
    public ResponseEntity<String> generateProfilesController(@RequestParam("file") MultipartFile profileSheet) throws IOException {

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.MULTIPART_FORM_DATA);

        MultiValueMap<String, Object> body
                = new LinkedMultiValueMap<>();
        body.add("file", new ByteArrayResource(profileSheet.getBytes()));
        HttpEntity<MultiValueMap<String, Object>> requestEntity
                = new HttpEntity<>(body, headers);
        ResponseEntity<String> response = restTemplate.postForEntity(url, requestEntity, String.class);
        System.out.println(response);
        return response;
    }
 }
}

服务2:

@RestController
@RequestMapping(value = "/api/v1/process")
public class Service2Controller {

  @PostMapping(
      value = "/customer-profiling",
      consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE})
  @Operation(summary = "API to generate profiles")
  public ResponseEntity<ApiSuccessResponse<EmptyJsonResponse>> getCustomerProfiles(
      @RequestParam("file") MultipartFile customerProfileSheet) throws IOException {

   //
    return new ResponseEntity<>(
        ApiSuccessResponse.response(new EmptyJsonResponse()), HttpStatus.CREATED);
  }

service1 通过 RestTemplate 调用 service2。当我检查 service2 的日志时,我可以看到如下错误日志:

"log":{"threadId":"http-nio-8081-exec-5","file":"org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver","level":"WARN","message":"Resolved [org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present]","type":"app","timestamp":"2021-08-04T18:27:51.027Z"}

当我尝试通过 postman/swagger 直接调用 service2 文件附件时,它工作得很好

请提出解决方案!我浏览了所有相关的帖子,但到目前为止都没有工作。

4

0 回答 0