java - 415 Unsupported Media Type when I send json to spring controller -


i send post http request "content-type" "application/json" controller

i have following dependencies:

     <!--json-->     <dependency>         <groupid>org.codehaus.jackson</groupid>         <artifactid>jackson-mapper-asl</artifactid>     </dependency>     <dependency>         <groupid>org.codehaus.jackson</groupid>         <artifactid>jackson-core-asl</artifactid>     </dependency> 

the following controler method:

    @requestmapping(value = "senddata.json", method = requestmethod.post, consumes = "application/json")     @responsestatus(httpstatus.no_content)     public void putjsondata(@requestbody requestresponsewrapper requestresponsewrapper) {         ...     } 

requestresponsewrapper , classes inside has default constructors

and see following spring log:

4751 [qtp333509504-16] trace o.s.web.servlet.dispatcherservlet - bound request context thread: (post //localhost:8087/mycompanymocks/mvc/***/senddata.json)@883530709 org.eclipse.jetty.server.request@34a99bd5  4751 [qtp333509504-16] debug o.s.web.servlet.dispatcherservlet - dispatcherservlet name 'spring mvc dispatcher servlet' processing post request [/mycompanymocks/mvc/***/senddata.json]  4753 [qtp333509504-16] trace o.s.web.servlet.dispatcherservlet - testing handler map [org.springframework.web.servlet.mvc.method.annotation.requestmappinghandlermapping@536d6f00] in dispatcherservlet name 'spring mvc dispatcher servlet'  4754 [qtp333509504-16] debug o.s.w.s.m.m.a.requestmappinghandlermapping - looking handler method path /***/senddata.json  4755 [qtp333509504-16] trace o.s.w.s.m.m.a.requestmappinghandlermapping - found 1 matching mapping(s) [/***/senddata.json] : [{[/***/senddata.json],methods=[post],params=[],headers=[],consumes=[application/json],produces=[],custom=[]}]  4756 [qtp333509504-16] debug o.s.w.s.m.m.a.requestmappinghandlermapping - returning handler method [public void com.mycompany.mocks.***.controller.***controller.putjsondata(com.mycompany.mocks.***.dto.***.requestresponsewrapper)]  4756 [qtp333509504-16] debug o.s.b.f.s.defaultlistablebeanfactory - returning cached instance of singleton bean '***controller'  4756 [qtp333509504-16] trace o.s.web.servlet.dispatcherservlet - testing handler adapter [org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter@1f878a58]  7759 [qtp333509504-16] trace o.s.w.m.annotation.modelfactory - selected @modelattribute method public com.mycompany.mocks.***.dto.***.requestresponsewrapper com.mycompany.mocks.***.controller.***controller.createrequestresponsewrapper()  8485 [qtp333509504-16] trace o.s.w.m.s.invocablehandlermethod - invoking [***controller.createrequestresponsewrapper] method arguments []  8485 [qtp333509504-16] trace o.s.w.m.s.invocablehandlermethod - method [createrequestresponsewrapper] returned [com.mycompany.mocks.***.dto.***.requestresponsewrapper@2f033262]  9339 [qtp333509504-16] trace o.s.w.m.s.handlermethodargumentresolvercomposite - testing if argument resolver [org.springframework.web.method.annotation.requestparammethodargumentresolver@2d121a3f] supports [class com.mycompany.mocks.***.dto.***.requestresponsewrapper]  9340 [qtp333509504-16] trace o.s.w.m.s.handlermethodargumentresolvercomposite - testing if argument resolver [org.springframework.web.method.annotation.requestparammapmethodargumentresolver@24ecc563] supports [class com.mycompany.mocks.***.dto.***.requestresponsewrapper]  9340 [qtp333509504-16] trace o.s.w.m.s.handlermethodargumentresolvercomposite - testing if argument resolver [org.springframework.web.servlet.mvc.method.annotation.pathvariablemethodargumentresolver@20b32d70] supports [class com.mycompany.mocks.***.dto.***.requestresponsewrapper]  9340 [qtp333509504-16] trace o.s.w.m.s.handlermethodargumentresolvercomposite - testing if argument resolver [org.springframework.web.servlet.mvc.method.annotation.pathvariablemapmethodargumentresolver@2448f6ff] supports [class com.mycompany.mocks.***.dto.***.requestresponsewrapper]  9340 [qtp333509504-16] trace o.s.w.m.s.handlermethodargumentresolvercomposite - testing if argument resolver [org.springframework.web.servlet.mvc.method.annotation.matrixvariablemethodargumentresolver@1da997ab] supports [class com.mycompany.mocks.***.dto.***.requestresponsewrapper]  9341 [qtp333509504-16] trace o.s.w.m.s.handlermethodargumentresolvercomposite - testing if argument resolver [org.springframework.web.servlet.mvc.method.annotation.matrixvariablemapmethodargumentresolver@12cb0241] supports [class com.mycompany.mocks.***.dto.***.requestresponsewrapper]  9341 [qtp333509504-16] trace o.s.w.m.s.handlermethodargumentresolvercomposite - testing if argument resolver [org.springframework.web.servlet.mvc.method.annotation.servletmodelattributemethodprocessor@430ecb7c] supports [class com.mycompany.mocks.***.dto.***.requestresponsewrapper]  9341 [qtp333509504-16] trace o.s.w.m.s.handlermethodargumentresolvercomposite - testing if argument resolver [org.springframework.web.servlet.mvc.method.annotation.requestresponsebodymethodprocessor@3841236] supports [class com.mycompany.mocks.***.dto.***.requestresponsewrapper]  9652 [qtp333509504-16] trace o.s.w.s.m.m.a.servletinvocablehandlermethod - error resolving argument [0] [type=com.mycompany.mocks.***.dto.***.requestresponsewrapper] handlermethod details:  controller [com.mycompany.mocks.***.controller.***controller] method [public void com.mycompany.mocks.***.controller.***controller.putjsondata(com.mycompany.mocks.***.dto.***.requestresponsewrapper)]  org.springframework.web.httpmediatypenotsupportedexception: content type 'application/json;charset=utf-8' not supported     @ org.springframework.web.servlet.mvc.method.annotation.abstractmessageconvertermethodargumentresolver.readwithmessageconverters(abstractmessageconvertermethodargumentresolver.java:158) ~[spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.servlet.mvc.method.annotation.requestresponsebodymethodprocessor.readwithmessageconverters(requestresponsebodymethodprocessor.java:149) ~[spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.servlet.mvc.method.annotation.requestresponsebodymethodprocessor.resolveargument(requestresponsebodymethodprocessor.java:100) ~[spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.method.support.handlermethodargumentresolvercomposite.resolveargument(handlermethodargumentresolvercomposite.java:77) ~[spring-web-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.method.support.invocablehandlermethod.getmethodargumentvalues(invocablehandlermethod.java:162) [spring-web-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.method.support.invocablehandlermethod.invokeforrequest(invocablehandlermethod.java:129) [spring-web-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.servlet.mvc.method.annotation.servletinvocablehandlermethod.invokeandhandle(servletinvocablehandlermethod.java:110) [spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.invokehandlemethod(requestmappinghandleradapter.java:776) [spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.handleinternal(requestmappinghandleradapter.java:705) [spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.servlet.mvc.method.abstracthandlermethodadapter.handle(abstracthandlermethodadapter.java:85) [spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:959) [spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:893) [spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:966) [spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ org.springframework.web.servlet.frameworkservlet.dopost(frameworkservlet.java:868) [spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ javax.servlet.http.httpservlet.service(httpservlet.java:707) [javax.servlet-api-3.1.0.jar:3.1.0]     @ org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:842) [spring-webmvc-4.1.6.release.jar:4.1.6.release]     @ javax.servlet.http.httpservlet.service(httpservlet.java:790) [javax.servlet-api-3.1.0.jar:3.1.0]     @ org.eclipse.jetty.servlet.servletholder.handle(servletholder.java:806) [jetty-servlet-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.servlet.servlethandler.dohandle(servlethandler.java:587) [jetty-servlet-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.handler.scopedhandler.handle(scopedhandler.java:143) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.security.securityhandler.handle(securityhandler.java:550) [jetty-security-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.session.sessionhandler.dohandle(sessionhandler.java:223) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.handler.contexthandler.dohandle(contexthandler.java:1128) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.servlet.servlethandler.doscope(servlethandler.java:515) [jetty-servlet-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.session.sessionhandler.doscope(sessionhandler.java:185) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.handler.contexthandler.doscope(contexthandler.java:1062) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.handler.scopedhandler.handle(scopedhandler.java:141) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.handler.contexthandlercollection.handle(contexthandlercollection.java:215) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.handler.handlercollection.handle(handlercollection.java:110) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.handler.handlerwrapper.handle(handlerwrapper.java:113) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.server.handle(server.java:507) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.httpchannel.handle(httpchannel.java:284) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.server.httpconnection.onfillable(httpconnection.java:237) [jetty-server-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.io.abstramycompanyonnection$readcallback.succeeded(abstramycompanyonnection.java:240) [jetty-io-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.io.fillinterest.fillable(fillinterest.java:93) [jetty-io-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.io.selemycompanyhannelendpoint$2.run(selemycompanyhannelendpoint.java:53) [jetty-io-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.util.thread.strategy.executeproducerun.produceandrun(executeproducerun.java:191) [jetty-util-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.util.thread.strategy.executeproducerun.run(executeproducerun.java:126) [jetty-util-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.util.thread.queuedthreadpool.runjob(queuedthreadpool.java:641) [jetty-util-9.3.0.m2.jar:9.3.0.m2]     @ org.eclipse.jetty.util.thread.queuedthreadpool$3.run(queuedthreadpool.java:559) [jetty-util-9.3.0.m2.jar:9.3.0.m2]     @ java.lang.thread.run(thread.java:745) [na:1.8.0_25] 9756 [qtp333509504-16] debug o.s.w.s.m.m.a.exceptionhandlerexceptionresolver - resolving exception handler [public void com.mycompany.mocks.***.controller.***controller.putjsondata(com.mycompany.mocks.***.dto.***.requestresponsewrapper)]: org.springframework.web.httpmediatypenotsupportedexception: content type 'application/json;charset=utf-8' not supported  9758 [qtp333509504-16] debug o.s.w.s.m.a.responsestatusexceptionresolver - resolving exception handler [public void com.mycompany.mocks.***.controller.***controller.putjsondata(com.mycompany.mocks.***.dto.***.requestresponsewrapper)]: org.springframework.web.httpmediatypenotsupportedexception: content type 'application/json;charset=utf-8' not supported  9758 [qtp333509504-16] debug o.s.w.s.m.s.defaulthandlerexceptionresolver - resolving exception handler [public void com.mycompany.mocks.***.controller.***controller.putjsondata(com.mycompany.mocks.***.dto.***.requestresponsewrapper)]: org.springframework.web.httpmediatypenotsupportedexception: content type 'application/json;charset=utf-8' not supported  9769 [qtp333509504-16] debug o.s.web.servlet.dispatcherservlet - null modelandview returned dispatcherservlet name 'spring mvc dispatcher servlet': assuming handleradapter completed request handling  9769 [qtp333509504-16] trace o.s.web.servlet.dispatcherservlet - cleared thread-bound request context: [post //localhost:8087/mycompanymocks/mvc/***/senddata.json]@883530709 org.eclipse.jetty.server.request@34a99bd5  9769 [qtp333509504-16] debug o.s.web.servlet.dispatcherservlet - completed request  9769 [qtp333509504-16] trace o.s.w.c.s.xmlwebapplicationcontext - publishing event in webapplicationcontext namespace 'spring mvc dispatcher servlet-servlet': servletrequesthandledevent: url=[/mycompanymocks/mvc/***/senddata.json]; client=[0:0:0:0:0:0:0:1]; method=[post]; servlet=[spring mvc dispatcher servlet]; session=[null]; user=[null]; time=[5027ms]; status=[ok]  

i spent lot of time debug spring cannot understand wrong.

i found problem cause

i had 2 fields names sku , sku , respecive set methods.

jackson cannot accept following mess in naming

p.s. spring provides confusing error message


Comments

Popular posts from this blog

Email notification in google apps script -

c++ - Difference between pre and post decrement in recursive function argument -

javascript - IE11 incompatibility with jQuery's 'readonly'? -