Websphere Application Server - Spring MVC - java.lang.NoSuchMethodError: org/codehaus/jackson/map/type/TypeFactory.type -
i using 8.0 due client restrictions deploy spring mvc application. have controllers defining tiny web service.
i tried deploy in common servers , runs properly, when try deploy situation:
- i can use services, not depending of elements getting.
- i can render calls in xml.
- i can render calls in json using jackson annotations.
but when try use of post calls, application throws error (got jvm system out):
0000002c webapp e com.ibm.ws.webcontainer.webapp.webapp logservleterror srve0293e: [servlet error]-[myapp]: java.lang.nosuchmethoderror: org/codehaus/jackson/map/type/typefactory.type(ljava/lang/reflect/type;lorg/codehaus/jackson/type/javatype;)lorg/codehaus/jackson/type/javatype; @ org.springframework.http.converter.json.mappingjacksonhttpmessageconverter.getjavatype(mappingjacksonhttpmessageconverter.java:219) @ org.springframework.http.converter.json.mappingjacksonhttpmessageconverter.canread(mappingjacksonhttpmessageconverter.java:134) @ org.springframework.web.servlet.mvc.method.annotation.abstractmessageconvertermethodargumentresolver.readwithmessageconverters(abstractmessageconvertermethodargumentresolver.java:130) @ org.springframework.web.servlet.mvc.method.annotation.requestresponsebodymethodprocessor.readwithmessageconverters(requestresponsebodymethodprocessor.java:180) @ org.springframework.web.servlet.mvc.method.annotation.requestresponsebodymethodprocessor.resolveargument(requestresponsebodymethodprocessor.java:95) @ org.springframework.web.method.support.handlermethodargumentresolvercomposite.resolveargument(handlermethodargumentresolvercomposite.java:77) @ org.springframework.web.method.support.invocablehandlermethod.getmethodargumentvalues(invocablehandlermethod.java:162) @ org.springframework.web.method.support.invocablehandlermethod.invokeforrequest(invocablehandlermethod.java:123) @ org.springframework.web.servlet.mvc.method.annotation.servletinvocablehandlermethod.invokeandhandle(servletinvocablehandlermethod.java:104) @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.invokehandlemethod(requestmappinghandleradapter.java:745) @ org.springframework.web.servlet.mvc.method.annotation.requestmappinghandleradapter.handleinternal(requestmappinghandleradapter.java:686) @ org.springframework.web.servlet.mvc.method.abstracthandlermethodadapter.handle(abstracthandlermethodadapter.java:80) @ org.springframework.web.servlet.dispatcherservlet.dodispatch(dispatcherservlet.java:925) @ org.springframework.web.servlet.dispatcherservlet.doservice(dispatcherservlet.java:856) @ org.springframework.web.servlet.frameworkservlet.processrequest(frameworkservlet.java:936) @ org.springframework.web.servlet.frameworkservlet.dopost(frameworkservlet.java:838) @ javax.servlet.http.httpservlet.service(httpservlet.java:595) @ org.springframework.web.servlet.frameworkservlet.service(frameworkservlet.java:812) @ javax.servlet.http.httpservlet.service(httpservlet.java:668) @ com.ibm.ws.webcontainer.servlet.servletwrapper.service(servletwrapper.java:1225) @ com.ibm.ws.webcontainer.servlet.servletwrapper.handlerequest(servletwrapper.java:775) @ com.ibm.ws.webcontainer.servlet.servletwrapper.handlerequest(servletwrapper.java:457) @ com.ibm.ws.webcontainer.servlet.servletwrapperimpl.handlerequest(servletwrapperimpl.java:178) @ com.ibm.ws.webcontainer.filter.webappfiltermanager.invokefilters(webappfiltermanager.java:1032) @ com.ibm.ws.webcontainer.webapp.webapp.handlerequest(webapp.java:3763) @ com.ibm.ws.webcontainer.webapp.webgroup.handlerequest(webgroup.java:304) @ com.ibm.ws.webcontainer.webcontainer.handlerequest(webcontainer.java:975) @ com.ibm.ws.webcontainer.wswebcontainer.handlerequest(wswebcontainer.java:1662) @ com.ibm.ws.webcontainer.channel.wcchannellink.ready(wcchannellink.java:195) @ com.ibm.ws.http.channel.inbound.impl.httpinboundlink.handlediscrimination(httpinboundlink.java:453) @ com.ibm.ws.http.channel.inbound.impl.httpinboundlink.handlenewrequest(httpinboundlink.java:515) @ com.ibm.ws.http.channel.inbound.impl.httpinboundlink.processrequest(httpinboundlink.java:306) @ com.ibm.ws.http.channel.inbound.impl.httpinboundlink.ready(httpinboundlink.java:277) @ com.ibm.ws.tcp.channel.impl.newconnectioninitialreadcallback.sendtodiscriminators(newconnectioninitialreadcallback.java:214) @ com.ibm.ws.tcp.channel.impl.newconnectioninitialreadcallback.complete(newconnectioninitialreadcallback.java:113) @ com.ibm.ws.tcp.channel.impl.aioreadcompletionlistener.futurecompleted(aioreadcompletionlistener.java:166) @ com.ibm.io.async.abstractasyncfuture.invokecallback(abstractasyncfuture.java:217) @ com.ibm.io.async.asyncchannelfuture.firecompletionactions(asyncchannelfuture.java:161) @ com.ibm.io.async.asyncfuture.completed(asyncfuture.java:138) @ com.ibm.io.async.resulthandler.complete(resulthandler.java:204) @ com.ibm.io.async.resulthandler.runeventprocessingloop(resulthandler.java:775) @ com.ibm.io.async.resulthandler$2.run(resulthandler.java:905) @ com.ibm.ws.util.threadpool$worker.run(threadpool.java:1691)
in last version of org.codehaus.jackson.mapper library, function error refering deprecated. tried switch version 1.0 1.9.12 of library clean deploying every change (to avoid class version collision).
after googling find post sais must class loader problem, select parent_last
config in was. nothing happened.
i dont realy happening in there. there no more info in logs.
edit>>> forgot append controller's function associated http call
@requestmapping(method = requestmethod.post) @responsebody public map<string, string> addincidence(@requestbody incidence incidence) { incidenceservice.addincidence(incidence); map<string, string> response = new hashmap<string, string>(); response.put("token", incidence.gettoken().tostring()); response.put("service_request_id", incidence.getservicerequestidstring()); response.put("service_notice", "some text server"); response.put("account_id", null); return response; }
thanks in advance.
websphere 8.0 comes jackson 1.5(or 1.6) out of box (it's repackaged , have explode check meta-inf version). such, if want functionality introduced after 1.5(or 1.6) you'll need reverse classloading order. fnt commented above, make sure change order @ both ear , war level if you're deploying such.
Comments
Post a Comment