This week's book giveaway is in the OCMJEA forum.
We're giving away four copies of OCM Java EE 6 Enterprise Architect Exam Guide and have Paul Allen & Joseph Bambara on-line!
See this thread for details.
The moose likes Spring and the fly likes Spring mvc request mapping for POST JSON request not working. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of OCM Java EE 6 Enterprise Architect Exam Guide this week in the OCMJEA forum!
JavaRanch » Java Forums » Frameworks » Spring
Bookmark "Spring mvc request mapping for POST JSON request not working." Watch "Spring mvc request mapping for POST JSON request not working." New topic
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: 1648
    
    7

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: 418
    
    4
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:
 
Don't get me started about those stupid light bulbs.
 
subject: Spring mvc request mapping for POST JSON request not working.