У меня есть метод ниже контроллера, который загружает файлы на мой сервер. Я хотел бы вернуть JSON для статуса Plupload. Однако ответ, похоже, отправляется как отправка, а не json @ResponseBody. Есть идеи?Возвращение ответа JSON для Spring MVC Запрос на отправку
private static final String RESP_SUCCESS = "{\"jsonrpc\" : \"2.0\", \"result\" : \"success\", \"id\" : \"id\"}";
private static final String RESP_ERROR = "{\"jsonrpc\" : \"2.0\", \"error\" : {\"code\": 101, \"message\": \"Failed to upload file.\"}, \"id\" : \"id\"}";
@RequestMapping(method = RequestMethod.POST)
public String uploadItem(@RequestBody MultipartFile file,
@RequestParam String name,
@RequestParam(required = false, defaultValue = "-1") int chunks,
@RequestParam(required = false, defaultValue = "-1") int chunk) {
Media media = new Media();
try {
Path path = Paths.get("/Users/username/Desktop/Test", file.getOriginalFilename());
media.setContentType(file.getContentType());
media.setFileName(file.getOriginalFilename());
media.setFileSize(file.getSize());
media.setFilePath(path.toString());
if (media.getContentType().contains("image")) {
Image image = new Image();
image.setImagePath(path.toString());
imageDao.save(image);
}
byte[] bytes = file.getBytes();
Files.write(path, bytes, StandardOpenOption.CREATE);
mediaDao.save(media);
return RESP_SUCCESS;
} catch (IOException e) {
e.printStackTrace();
}
return RESP_ERROR;
}
}
Выдает следующую ошибку:
WARN - No mapping found for HTTP request with URI [/{"jsonrpc" : "2.0", "result" : "success", "id" : "id"}] in DispatcherServlet with name 'cr'
Я редактировал свой ответ на метод я использовал, что в конечном итоге фиксируя его, так как ваш был достаточно близко, чтобы получить меня там. Спасибо! – zmanc
Синтаксис неверен, пожалуйста, не редактируйте ответ, предлагая совершенно неправильный синтаксис из того, что говорит текст («возвращаемый тип должен быть @ResponseBody»), поскольку это уже не имеет смысла. –
@ThomasW Использование аннотации не может быть возвратным типом. Тип возврата - 'String'. Метод аннотируется с помощью '@ ResponseBody'. –