Spring RequestBody — СТАТУС 415 — Простой код не работает

#json #spring

#json #весна

Вопрос:

Привет, ребята, у меня мега простой код, который выглядит так:

КЛАСС JSON:

 public class AddressJSON implements Serializable{


private static final long serialVersionUID = 341272642200865765L;

private String firstName;
private String lastName;

public String getFirstName() {
    return firstName;
}
public void setFirstName(String firstName) {
    this.firstName = firstName;
}
public String getLastName() {
    return lastName;
}
public void setLastName(String lastName) {
    this.lastName = lastName;
}

}
  

КОНТРОЛЛЕР:

 @RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public String test(HttpServletRequest request, HttpServletResponse response, @RequestBody AddressJSON addressJSON)
{

    logger.info("FIRSTNAME: " addressJSON.getFirstName());

    return "TEST";
}
  

Я использую простой запрос JSON через chrome POSTMAN, который выглядит следующим образом:

{ «FirstName»: «test», «LastName»: «test» }

В конце я получаю 415… что я делаю не так, может быть, я о чем-то забыл?

ЗАПРОС POSTMAN:

https://dl.dropboxusercontent.com/u/16887656/postman.PNG

Комментарии:

1. Как выглядит ваша конфигурация Spring?

2. MappingJacksonHttpMessageConverter»> <имя свойства =»prefixJson» значение =»false»/> <имя свойства =»Поддерживаемые типы данных» значение =»application / json»/> </bean>

3. Вы должны добавить это к своему вопросу, чтобы каждый мог легко увидеть, не читая комментарии

4. Вы пробовали добавлять Content-Type: application/json в POSTMAN?

5. Я добавил к нему ответ. Если это не составит особого труда, было бы хорошо, если бы вы приняли его, чтобы будущие читатели могли сразу увидеть решение, не читая комментарии :). Спасибо!

Ответ №1:

Проблема заключается в том, как вы вызываете контроллер для клиента POSTMAN. У клиента отсутствует заголовок Content-Type: application/json HTTP