spring-social-linkedin совместимость с spring-social 1.1

У нас есть проект, который использует spring-social-facebook, spring-social-twitter, spring-social-linkedin и spring-social-google. В настоящее время мы используем следующие версии:

  • весна-социальное ядро: 1.0.3
  • spring-social-facebook: 1.0.1
  • spring-social-twitter: 1.0.5
  • spring-social-google: 1.0.0
  • spring-social-linkedin: 1.0.0.RC1

Мы пытаемся обновить Facebook и Twitter до версии 1.1. В настоящее время нет доступных библиотек 1.1 для LinkedIn и Google+, поэтому следующие версии:

  • spring-social-core: 1.1.0. РЕЛИЗ
  • spring-social-facebook: 1.1.1. РЕЛИЗ
  • spring-social-twitter: 1.1.0.RELEASE
  • spring-social-google: 1.0.0
  • spring-social-linkedin: 1.0.0.RC1

После внесения этого изменения вход в LinkedIn больше не работает, за исключением следующего исключения:

org.springframework.http.converter.HttpMessageNotReadableException. org.springframework.http.converter.HttpMessageNotReadableException: не удалось прочитать JSON: не найден подходящий конструктор для типа [простой тип, класс org.springframework.social.linkedin.api.LinkedInProfile]: невозможно создать экземпляр из объекта JSON (необходимо добавить / включить информацию о типе?) в [Source: org.apache.http.conn.EofSensorInputStream@7659b0e8; строка: 2, столбец: 3]; вложенным исключением является com.fasterxml.jackson.databind.JsonMappingException: не найден подходящий конструктор для типа [простой тип, класс org.springframework.social.linkedin.api.LinkedInProfile]: невозможно создать экземпляр объекта JSON (необходимо добавить / включить тип информация?) в [Источник: org.apache.http.conn.EofSensorInputStream@7659b0e8; строка: 2, столбец: 3] в org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readJavaType(MappingJackson2HttpMessageConverter.java:170) ~[spring-web-3.2.0.RELEASE.jELE: 3.2.0.Rease) на 3.2.0 org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.read(MappingJackson2HttpMessageConverter.java:162) ~[spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE.ract.EngerFractor.me.extractData(HttpMessageConverterExtractor.java:94) ~[spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE] в org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:492) ~[spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE] at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:447) ~[spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE] в org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:215) ~[spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE] в org.springframework.social.linkedin.api.impl.ProfileTemplate.getUserProfile(Р rofileTemplate.java:79) ~[spring-social-linkedin-1.0.0.RC1.jar:na] на com.globaldawn.social.core.oauth.handler.LinkedInOAuthHandler.authenticate(LinkedInOAuthHandler.java:94) ~[social-core-4.0.4219.jar:na] на com.globaldawn.social.core.oauth.service.SocialOAuthService.authenticateWithSocialNetwork(SocialOAuthService.java:371) ~[social-core-4.0.4219.jar:na] на com.globaldawn.social.core.oauth.service.SocialOAuthService.authenticate(SocialOAuthService.java:160) ~[social-core-4.0.4219.jar:na] в com.globaldawn.social.web.controller.login.SocialLoginControltil.login(SocialLoginControllerUtil.java:194) ~[classes/:na] на com.globaldawn.social.web.controller.login.SocialLoginControllerUtil.successfulLoginCallback(SocialLoginControllerUtil.java:117) ~[classes/:na at на].social.web.controller.login.LinkedInSocialLoginController.successfulOAuthLoginCallback(LinkedInSocialLoginController.java:126) ~[classes/:na] в sun.reflect.NativeMethodAccessorImpl.invoke0 [родной метод).7.0_51] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_51] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorI: 71): 7_j_jlj. в java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_51] в org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) ~ spring web-3.2.0.RELEASE.jar:3.2.0.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) ~[spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) ~[spring-webmvc-3.2.0jREE.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:746) ~[spring-webmvc-3.2.0.RELEASE.jELE: 3.2.0.REG.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687) ~[spring-webmvc-3.2.0.RELEASE.jar:3.2.0.RELEASE] в org.springframework.web.servlet.mvc.ho.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) ~[spring-webmvc-3.2.0.RELEASE.jar:3.2.0.RELEASE] в org.springframework.web.servlet.DispatcherServlet.doDispatch(j): DispatcherServlet.doDispatch (9) [spring-webmvc-3.2.0.RELEASE.jar:3.2.0.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) [spring-webmvc-3.2.0.RELEASE.jar:3.2.0.RELEASE] в org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915) [spring-webmvc-3.2.0.RELEASE.jar:3.2.0.RELEASE] в org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:811) [spring-webmvc-3.2.0.RELEASE.jar:3.2.0.RELEASE] в javax.servlet.http.HttpServlet.service(HttpServlet.java:735) [social-rest-service.war:na] в org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:796) [spring-webmvc-3.2.0.RELEASE.jar:3.2.0.RELEASE] в javax.servlet.http.HttpServlet.service(HttpServlet.java:848)) [social-rest-service.war: na] в org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:698) [social-rest-service.war:na] в org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1506) [social-rest-service.war:na] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88 [весна].0.RELEASE.jar:3.2.0.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE] at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494) [social-rest-service.war:na] at org.springframework.web.filter.HttpPutFormContentFilter.doFttputterFF ()) [spring-web-3.2.0.RELEASE.jar: 3.2.0.RELEASE] в org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java:107) [spring-web-3.2.0.RELEASE.jar: 3.2.0.RELEASE] в org.eclipse.jetty.servlet.ServletCandin. $ doFilter(ServletHandler.java:1486) [social-rest-service.war:na] at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:503) [social-rest-service.war:na] в org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:138) [social-rest-service.war:na] at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:564) [social-rest-service.war:na] в org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:213) [social-rest-service.war:na] в org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1096) [social-rest-service.war:na] at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:432) [social-rest-service.war:na] at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:175) [social-rest-service.war:na] в org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1030) [social-rest-service.war:na] в org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136) [social-rest-service.war:na] at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) [social-rest-service.war:na] at com.codahale.metrics.jetty9.InstrumentedHandler.handle(InstrumentedHandler.java:173) [social-rest-service.war:na] в org.eclipse.jetty.server.handler.HandlerWrapper. handle (HandlerWrapper.java:97) [social-rest-service.war: na] в com.globaldawn.application.monitoring.RequestMetricsHandler.handle(RequestMetricsHandler.java:98) [social-rest-service.war:na] в org.eclipse.jetty.server.handler.HandlerWrapper.handle (HandlerWrapper.java:97) [social-rest-service.war: na] в org.eclipse.jetty.server.Server.handle(Server.java:445) [social-rest-service.war:na] at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:268) [social-rest-service.war:na] at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:229) [social-rest-service.war:na] at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:358) [social-rest-service.war:na] at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:601) [social-rest-service.war:na] at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:532) [social-rest-service.war:na] в java.lang.Thread.run(Thread.java:744) [na:1.7.0_51] Причина: com.fasterxml.jackson.databind.JsonMappingException: не найден подходящий конструктор для типа [простой тип, класс org.springframework.social.linkedin.api.LinkedInProfile]: невозможно создать экземпляр объекта JSON (нужно добавить / включить информацию о типе?) в [Source: org.apache.http.conn.EofSensorInputStream@7659b0e8; строка: 2, столбец: 3] на com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164) ~[jackson-databind-2.3.2.jar:2.3.2] на com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1078) ~[jackson-databind-2.3.2.jar:2.3.2] по адресу com.fasterxml.jackson.databind.deser.BeanDeserializer.avaser) ~ [jackson-databind-2.3.2.jar: 2.3.2] по адресу com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:124) ~[jackson-databind-2.3.2.jar:2.3.2] в com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2993) ~[jackson-databind-2.3.2.jar:2.3.2] в com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2158) ~[jackson-databind-2.3.2.jar:2.3.2] в org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.readJavaType (MappingJackson2HttpMessageCon7) -7). -3.2.0.RELEASE.jar: 3,2.0.RELEASE] ... 58 общих кадров опущено

Мы используем gradle для управления зависимостями, который всегда принимает наибольший номер версии, когда требуются разные версии пакета, поэтому зависимость spring-social-linkedin от spring-social-core 1.0.3 принудительно "обновлена" до версии 1.1. 0. Это совместимо? Можно ли использовать spring-social-linkedin в проекте, который использует версию 1.1 из spring-social-facebook и / или spring-social-twitter?

1 ответ

Ответ, по-видимому, заключается в том, что spring-social-core v1.1 несовместима с spring-social-linkedin v1.0 - v1.0 использует org.codehaus.jackson для сериализации JSON, тогда как v1.1 использует com.fasterxml.jackson.core.

Вы не можете обновить spring-social-facebook или spring-social-twitter до v1.1, если вам нужно использовать spring-social-linkedin в одном модуле.

Не удивительно, но в результате нам, вероятно, нужно будет вообще отказаться от весенних социальных сетей, так как нам нужна более новая функциональность, и мы не можем разъединить различные социальные сети.

Другие вопросы по тегам