Я вызываю службу в контроллере заказов, который получает составной файл, обрабатывает его и сохраняет в базе данных. Я пытаюсь создать Spring Rest Do c для него, но он даже не достигает конечной точки. Я создаю список заказов, который ожидает сервис. Он получает заказ в виде потока, как показано, и преобразует в поток заказов перед сохранением его в базе данных. Я показал основную часть контроллера и мой код для генерации остальных документов. Когда я запускаю код, я получаю следующее исключение, оно даже не достигает конечной точки, когда я устанавливаю точку останова. Я также использовал fileupload (), но это тоже не сработало.
Исключение составляет:
Тип содержимого = application / json Body = {"path": "/ orders / order_reception", "exceptionName ":" MissingServletRequestPartException "," message ":" Обязательная часть запроса 'uploadFile' не
present "," rootExceptionName ":" MissingServletRequestPartException "," rootMessage ":" MissingServletRequestPartException: обязательная часть запроса нет "}
@RestController
@RequestMapping(value = "/orders")
@Validated
class OrderController{
@PostMapping(path = "/order_reception")
public ResponseEntity receiveData(@RequestPart MultipartFile uploadFile,
HttpServletRequest request,
HttpServletResponse response) {
if (!uploadFile.isEmpty()) {
try {
Reader reader = new InputStreamReader(request.getInputStream()));
... save file
return new ResponseEntity<>(HttpStatus.HttpStatus.CREATED);
} catch (Exception e) {
return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
}
}
return new ResponseEntity(HttpStatus.BAD_REQUEST);
}
@Test
public void sendData() throws Exception {
ObjectMapper mapper = new ObjectMapper();
Order order = repository.getOrder("1233333");
List<Order> orderList = new ArrayList<>():
resourceList.add(order);
MockMultipartFile orderFile = new MockMultipartFile("order-data", "order.json", "application/json",
mapper.writeValueAsString(orderList).getBytes(Charset.defaultCharset()));
mockMvc.perform(multipart("/orders/order_reception")
.file(orderFile))
.andExpect(status().isCreated())
.andDo(document("send-order",
preprocessRequest(prettyPrint()),
preprocessResponse(prettyPrint())));
}