2015-08-24 3 views
0

Я пытаюсь отправить строку JSON в качестве запроса к моему приложению. Это мой код:Java Spring MVC - Отправить ошибку тела запроса JSON

@RequestMapping(
     value = "/mylink/upload", 
     method = RequestMethod.POST, 
     consumes ="application/json", 
     produces = "application/json") 
public 
@ResponseBody 
List<Upload> upload(
     @RequestParam(value = "hdfsLocation") String hdfsLocation 

) throws Exception { 
    return S3HdfsTransfer.uploadFromHDFS(hdfsLocation); 
} 

Я пытаюсь отправить запрос с Почтамтом. Метод, который я использую POST, заголовок содержит: Accept «приложения/JSON», Content-Type «приложения/JSON», тело запроса следующее:

{ 
    "hdfsLocation" : "hdfs://145.160.10.10:8020" 
} 

Это ответ я получаю. Если я поместил параметр в URL-адрес, он будет работать.

{ 
    "httpStatus": 500, 
    "appErrorId": 0, 
    "message": "Required String parameter 'hdfsLocation' is not present", 
    "trackingId": "8c6d45fd-2da5-47ea-a213-3d4ea5764681" 
} 

Любая идея, что я делаю неправильно?

Спасибо, Serban

+0

попытаться изменить тип возвращаемого – Make

+0

вы можете удалить тип содержимого и попробовать – kiruba

ответ

1

Похоже, вы путаете @RequestBody с @RequestParam. Выполните одно из следующих действий:

Я думаю, вы более посмотрел :)

1

Если не было бы @RequestBody вместо @RequestParam? Кроме того, даже после использования @RequestBody вся строка JSON: { "hdfsLocation" : "hdfs://145.160.10.10:8020" } будет значением String hdfsLocation, а не только URL-адресом hdfs. Следовательно, вам придется JSON разобрать этот JSON самостоятельно, чтобы получить только hdf-url.

Смежные вопросы