File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
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 EJB 3 in Action this week in the EJB and other Java EE Technologies 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: 1632
    
    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: 381
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:
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Spring mvc request mapping for POST JSON request not working.
 
Similar Threads
Add Update problem in Hashtable
Populating <html:select> tag
getAsText() not called Spring MVC PropertyEditorSupport AJAX
Having some problem to understand how to manage JSON request
Hashtable method arguments