Spring Data Rest 2.4 间歇性错误(ClassCastException)

Spring Data Rest 2.4 Intermittent Error (ClassCastException)

使用 Spring 数据休息继续。迁移到 2.4.0 后,我得到了更多我想要的行为,但是现在我遇到了一个奇怪的间歇性异常。

关于。 . .当我重新加载或部署我的应用程序时,有 2/3 的时间,每个带有数据的 SDR 端点都会抛出 500,并给出以下内容:

GET /api/departments
--------------------

HTTP Status 500 - Could not write content: org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResourceContentSerializer 
cannot be cast to com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanSerializer 
(through reference chain: 
org.springframework.hateoas.PagedResources["_embedded"]
->java.util.UnmodifiableMap["departments"]
->java.util.ArrayList[0]
->org.springframework.data.rest.webmvc.json.ProjectionResource["content"]); 

nested exception is com.fasterxml.jackson.databind.JsonMappingException:
org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$ProjectionResourceContentSerializer 
cannot be cast to com.fasterxml.jackson.databind.ser.impl.UnwrappingBeanSerializer 

(through reference chain: 
org.springframework.hateoas.PagedResources["_embedded"]
->java.util.UnmodifiableMap["departments"]
->java.util.ArrayList[0]
->org.springframework.data.rest.webmvc.json.ProjectionResource["content"])

(提供完整的错误报告:http://pastebin.com/xzzXkFiR

就像我说的,这不会在我每次 reload/deploy 应用程序时发生,但如果发生它完全卡住了,重新加载是修复它的唯一方法。非常奇怪的行为,不知道有没有人有见识。

如果我回滚到 Spring Data Rest 2.3.2

,则不会出现问题

感谢您的帮助,请让我知道我可以提供哪些其他相关信息。

一些进一步的测试

最新的 (2.5.0 SNAPSHOT) 也会出现问题。

更新到 Spring Data Rest 2.4.0 后,我可以观察到同样的问题。这个问题不是确定性可重现的。到目前为止我没有任何统计数据,但在将 Jackson 依赖项从 2.4.0 更新到 2.6.0 后,它出现的频率降低了。有时它仍然会弹出,但在我的情况下重新加载就足够了。一个最小的例子将有助于更深入地研究它。

jackson-databind 库中的错误。发布后升级到发布火车 Gosling-SR3。

https://jira.spring.io/browse/DATAREST-716 and https://jira.spring.io/browse/DATAREST-743