#jquery #json #spring #web-services #spring-mvc
#jquery #json #весна #веб-сервисы #spring-mvc
Вопрос:
Я работаю с веб-службой spring Rest.Я не могу преобразовать JSON
в Java Object
с помощью @RequestBody
.
Метод контроллера:
@RequestMapping(value="/test",method=RequestMethod.POST)
public @ResponseBody String test(@RequestBody Student s)
{
System.out.print(s.getName() s.getMark() s.getRollNo());
return "ok";
}
Класс POJO:
public class Student implements Serializable {
private static final long serialVersionUID = 1L;
private int mark;
private String name;
private int rollNo;
// getters and setters
}
MessageConverter в Serlvet-context.xml:
<beans:bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></beans:bean>
<beans:bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<beans:property name="messageConverters">
<beans:list>
<beans:ref bean="jacksonMessageConverter"/>
</beans:list>
</beans:property>
</beans:bean>
Я использую POSTMAN
плагин rest client chrome для вызова веб-сервиса. JSON object
передано:
{"mark":30,"name":"sam","rollNo":100}
Я получаю « 415 Unsupported Media Type
в качестве ответа при вызове веб-службы.
Пожалуйста, помогите. Заранее спасибо!
Комментарии:
1. Похоже, ваша строка JSON неверна. Смотрите кавычки
2. извините. По ошибке я написал здесь вот так. Я отредактировал его.
Ответ №1:
Проблема заключается в том, как вы вызываете контроллер для клиента POSTMAN.
В нем отсутствует заголовок Content-Type: application/json
HTTP
Ответ №2:
Просто сделайте это
@RequestMapping(value="/test",method=RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE)