| Author |
Spring mvc request mapping for POST JSON request not working.
|
Sunny Mattas
Ranch Hand
Joined: Apr 22, 2008
Posts: 45
|
|
Hello All,
In our spring web application we are getting AJAX JSON request and I have to do the request mapping in controller.
Following is the structure of my request form data sent to the server.
Following is the request mapping I have done in the controller.
But I am getting the following error in the browser
415 Unsupported Media Type
Please let me know what is wrong with my request mapping. Thanks.
Regards,
|
Regards
Sunny Mattas
SCJP5
|
 |
Bill Gorder
Bartender
Joined: Mar 07, 2010
Posts: 1282
|
|
Just a side note you should use the 'produces' and 'consumes' attributes of RequestMapping to define the Content-Type and Accept rather than the headers attribute. This was added in newer versions of Spring.
The likely culprit is one of 2 things:
-Either you do not have the Jackson type converter registered (should happen if you have used the annotation-config tag in the MVC namespace or the @EnableWebMvc annotation in your @Configuration file) IF the Jackson library is on your classpath.
-You have not set the Content-Type header on the incoming request to "application/json"
The easiest way to do some test posts is use the RestClient Firefox extension. Using this plugin you can post in some JSON and set the Content-Type header.
https://addons.mozilla.org/en-us/firefox/addon/restclient/
|
[How To Ask Questions][Read before you PM me]
|
 |
H Paul
Ranch Hand
Joined: Jul 26, 2011
Posts: 299
|
|
OP,
Following Bill's advice. This is what I did to solve my json issue using Spring 3
1.a. Add to applicationContext-mvc.xml
Then implicitly RequestMappingHandlerMapping will be registered/called/used.
Then MappingJacksonHttpMessageConverter will be called as it is registered.
3. Controller
4. Fun to debug:
- The best is use a debugger and set breaking point on below classes and others
DispatcherServlet
RequestMappingHandlerMapping
MappingJacksonHttpMessageConverter
-have TCP/IP to see the request sent from the client to server: http headers + body
-log4j.xml to watch log:
|
 |
 |
|
|
subject: Spring mvc request mapping for POST JSON request not working.
|
|
|