rest - 406 Not Acceptable: Spring MVC + JSON -


i know question has been asked many times, although tried has been said still have issue. i'm trying generate simple json response working. right 406 not acceptable error. tomcat says "the resource identified request capable of generating responses characteristics not acceptable according request "accept" headers." in tomcat/lib have jackson jars. i'm using spring 1.1.0 tomcat 7. addedd dependencies in pom.xml:

<dependencies> <dependency> <groupid>com.fasterxml.jackson.core</groupid> <artifactid>jackson-core</artifactid> <version>2.4.1</version> </dependency>  <dependency> <groupid>com.fasterxml.jackson.core</groupid> <artifactid>jackson-databind</artifactid> <version>2.4.1.1</version> </dependency>  <dependency> <groupid>org.codehaus.jackson</groupid> <artifactid>jackson-core-asl</artifactid> <version>1.9.13</version> </dependency>  <dependency> <groupid>org.codehaus.jackson</groupid> <artifactid>jackson-mapper-asl</artifactid> <version>1.9.13</version> </dependency> </dependencies> 

companiesrestcontroller.java

 @requestmapping(value = "/companies", method = requestmethod.get)     @responsebody     public list<companies> listcompaniess() {         return new java.util.arraylist<companies>(companiesservice.loadcompaniess());     } 

i added code snippet in applicationcontext.xml, described in : reference:

    <bean class="org.springframework.web.servlet.mvc.annotation.annotationmethodhandleradapter">     <property name="messageconverters">       <util:list id="beanlist">         <ref bean="stringhttpmessageconverter"/>         <ref bean="marshallinghttpmessageconverter"/>       </util:list>     </property </bean>  <bean id="stringhttpmessageconverter"         class="org.springframework.http.converter.stringhttpmessageconverter"/>  <bean id="marshallinghttpmessageconverter"        class="org.springframework.http.converter.xml.marshallinghttpmessageconverter">   <property name="marshaller" ref="castormarshaller" />   <property name="unmarshaller" ref="castormarshaller" /> </bean> 

but in vain, none of worked.

i'd thankfull suggestions.

ps: used scaffolding generate crud application.

-regards

actually, when edit companiesrestcontroller.java

 @requestmapping(value = "/companies", method = requestmethod.get)     @responsebody     public string<companies> listcompaniess() {         return new java.util.arraylist<companies>(companiesservice.loadcompaniess()).tostring();     } 

or

@requestmapping(value = "/companies", method = requestmethod.get,produces="application/json")      public @responsebody object[] listcompaniess() {         return new java.util.arraylist<companies>(companiesservice.loadcompaniess()).toarray();      } 

i no longer have 406error, array containing records have in database, array, not json...

i've tried make use if jsonobject, still have same issue, used scaffolding create spring mvc application, , convert maven project add jackson libraries , dependencies, when cenvert it, project collapses , throws following errors:

2015-07-15 17:32:31,299 info [localhost-startstop-1] lobcreatorbuilder - hhh000424: disabling contextual lob creation createclob() method threw error : java.lang.reflect.invocationtargetexception 2015-07-15 17:32:31,314 warn [localhost-startstop-1] jtaplatforminitiator - hhh000427: using deprecated org.hibernate.transaction.transactionmanagerlookup strategy [hibernate.transaction.manager_lookup_class], use newer org.hibernate.service.jta.platform.spi.jtaplatform strategy instead [hibernate.transaction.jta.platform] 2015-07-15 17:32:31,314 info [localhost-startstop-1] jtaplatforminitiator - hhh000428: encountered legacy transactionmanagerlookup specified; convert newer org.hibernate.service.jta.platform.spi.jtaplatform contract specified via hibernate.transaction.jta.platform setting 2015-07-15 17:32:31,314 info [localhost-startstop-1] astquerytranslatorfactory - hhh000397: using astquerytranslatorfactory 2015-07-15 17:32:31,361 info [localhost-startstop-1] version - hibernate validator 4.2.0.final 2015-07-15 17:32:31,642 info [localhost-startstop-1] transactionfactoryinitiator - hhh000268: transaction strategy: org.hibernate.engine.transaction.internal.jta.cmttransactionfactory no properties path set - looking transactions.properties in classpath... transactions.properties not found - looking jta.properties in classpath... using init file: /d:/users/ielhazit/workspaces/myeclipse%202015%20ci/.metadata/.me_tcat7/webapps/chouette/web-inf/classes/jta.properties juil. 15, 2015 5:32:32 pm org.apache.catalina.core.applicationcontext log infos: initializing spring frameworkservlet 'chouette servlet' 2015-07-15 17:32:32,471 error [localhost-startstop-1] frameworkservlet - context initialization failed org.springframework.beans.factory.beancreationexception: error creating bean name 'org.springframework.validation.beanvalidation.optionalvalidatorfactorybean#0': invocation of init method failed; nested exception java.lang.abstractmethoderror: org.hibernate.validator.engine.configurationimpl.getdefaultparameternameprovider()ljavax/validation/parameternameprovider;     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1568)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:540)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:476)     @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:302)     @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:229)     @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:298)     @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:193)     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.preinstantiatesingletons(defaultlistablebeanfactory.java:725)     @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:757)     @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:480)     @ org.springframework.web.servlet.frameworkservlet.configureandrefreshwebapplicationcontext(frameworkservlet.java:658)     @ org.springframework.web.servlet.frameworkservlet.createwebapplicationcontext(frameworkservlet.java:624)     @ org.springframework.web.servlet.frameworkservlet.createwebapplicationcontext(frameworkservlet.java:672)     @ org.springframework.web.servlet.frameworkservlet.initwebapplicationcontext(frameworkservlet.java:543)     @ org.springframework.web.servlet.frameworkservlet.initservletbean(frameworkservlet.java:484)     @ org.springframework.web.servlet.httpservletbean.init(httpservletbean.java:136)     @ javax.servlet.genericservlet.init(genericservlet.java:158)     @ org.apache.catalina.core.standardwrapper.initservlet(standardwrapper.java:1284)     @ org.apache.catalina.core.standardwrapper.loadservlet(standardwrapper.java:1197)     @ org.apache.catalina.core.standardwrapper.load(standardwrapper.java:1087)     @ org.apache.catalina.core.standardcontext.loadonstartup(standardcontext.java:5231)     @ org.apache.catalina.core.standardcontext.startinternal(standardcontext.java:5518)     @ org.apache.catalina.util.lifecyclebase.start(lifecyclebase.java:150)     @ org.apache.catalina.core.containerbase.addchildinternal(containerbase.java:901)     @ org.apache.catalina.core.containerbase.addchild(containerbase.java:877)     @ org.apache.catalina.core.standardhost.addchild(standardhost.java:649)     @ org.apache.catalina.startup.hostconfig.deploydirectory(hostconfig.java:1247)     @ org.apache.catalina.startup.hostconfig$deploydirectory.run(hostconfig.java:1897)     @ java.util.concurrent.executors$runnableadapter.call(executors.java:471)     @ java.util.concurrent.futuretask.run(futuretask.java:262)     @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145)     @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615)     @ java.lang.thread.run(thread.java:744) caused by: java.lang.abstractmethoderror: org.hibernate.validator.engine.configurationimpl.getdefaultparameternameprovider()ljavax/validation/parameternameprovider;     @ sun.reflect.nativemethodaccessorimpl.invoke0(native method)     @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:57)     @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)     @ java.lang.reflect.method.invoke(method.java:606)     @ org.springframework.util.reflectionutils.invokemethod(reflectionutils.java:209)     @ org.springframework.util.reflectionutils.invokemethod(reflectionutils.java:194)     @ org.springframework.validation.beanvalidation.localvalidatorfactorybean.configureparameternameproviderifpossible(localvalidatorfactorybean.java:276)     @ org.springframework.validation.beanvalidation.localvalidatorfactorybean.afterpropertiesset(localvalidatorfactorybean.java:245)     @ org.springframework.validation.beanvalidation.optionalvalidatorfactorybean.afterpropertiesset(optionalvalidatorfactorybean.java:40)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1627)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1564)     ... 32 more 

any ideas thank you

the producible media types of mapped request can configured spring's @requestmapping.

example : @requestmapping(value = "/list", method = requestmethod.get, produces = "application/json")


Comments