0

我们有一个使用 spring-social-facebook、spring-social-twitter、spring-social-linkedin 和 spring-social-google 的项目。我们目前使用以下版本:

  • 春天社会核心:1.0.3
  • 春天社交脸书:1.0.1
  • 春季社交推特:1.0.5
  • 春天社交谷歌:1.0.0
  • 弹簧社交链接:1.0.0.RC1

我们正在尝试将 Facebook 和 Twitter 更新到 1.1 目前没有可用于 LinkedIn 和 Google+ 的 1.1 库,因此生成的版本是:

  • 春天社会核心:1.1.0.RELEASE
  • spring-social-facebook:1.1.1.RELEASE
  • 春季社交推特:1.1.0.RELEASE
  • 春天社交谷歌:1.0.0
  • 弹簧社交链接: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。eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:532) [social-rest-service.war:na] at 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。

我们使用 gradle 进行依赖管理,在需要不同版本包的地方总是取最高版本号,所以 spring-social-linkedin 对 spring-social-core 1.0.3 的依赖被强制“升级”到 1.1。 0。这兼容吗?是否可以在使用 spring-social-facebook 和/或 spring-social-twitter 1.1 版的项目中使用 spring-social-linkedin?

4

1 回答 1

1

答案似乎是 spring-social-core v1.1 与 spring-social-linkedin v1.0 不兼容 - v1.0 使用 org.codehaus.jackson 序列化 JSON,而 v1.1 使用 com.fasterxml.jackson 。核。

如果您需要在同一模块中使用 spring-social-linkedin,则无法将 spring-social-facebook 或 spring-social-twitter 升级到 v1.1。

这并不令人惊讶,但我们可能需要完全摆脱 spring-social,因为我们需要一些更新的功能并且不能分离不同的社交网络。

于 2014-10-28T17:30:35.127 回答