Spring 4.2.3和fastxml Jackson 2.7.0不兼容

从fastxml.jackson 2.6.3迁移到2.7.0之后。这是因为删除public JavaType constructType(Type type, Class<?> contextType)了Spring的方法AbstractJackson2HttpMessageConverter。如何解决?我正在使用Spring 4.2.3。

/signin/facebook

java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.type.TypeFactory.constructType(Ljava/lang/reflect/Type;Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/JavaType;

at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.getJavaType(AbstractJackson2HttpMessageConverter.java:314)

at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.canRead(AbstractJackson2HttpMessageConverter.java:146)

at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.canRead(AbstractJackson2HttpMessageConverter.java:141)

at org.springframework.web.client.RestTemplate$AcceptHeaderRequestCallback.doWithRequest(RestTemplate.java:706)

at org.springframework.web.client.RestTemplate$HttpEntityRequestCallback.doWithRequest(RestTemplate.java:770)

at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:594)

at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:557)

at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:357)

at org.springframework.social.oauth2.OAuth2Template.postForAccessGrant(OAuth2Template.java:242)

at org.springframework.social.oauth2.OAuth2Template.exchangeForAccess(OAuth2Template.java:144)

at org.springframework.social.connect.web.ConnectSupport.completeConnection(ConnectSupport.java:160)

at org.springframework.social.connect.web.ProviderSignInController.oauth2Callback(ProviderSignInController.java:228)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:44)

at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:222)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:814)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:737)

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)

at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

回答:

在Spring4.3中将添加对Jackson 2.7的支持。见https://jira.spring.io/browse/SPR-13483。

现在,如果不提供自己的集成类,就无法使用它。

以上是 Spring 4.2.3和fastxml Jackson 2.7.0不兼容 的全部内容, 来源链接: utcz.com/qa/415293.html

回到顶部