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

时间:2015-09-14 19:34:26

标签: java spring rest spring-data-rest

继续使用Spring Data Rest。移动到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

就像我说的,每次重新加载/部署应用程序时都不会发生这种情况,但是如果它发生了它就会完全卡住,并且重新加载是修复它的唯一方法。非常奇怪的行为,想知道是否有人有任何见解。

如果我回滚到Spring Data Rest 2.3.2

,则不会发生问题

感谢您的帮助,请告诉我其他相关信息。

  • SDR:2.4.1
  • SFW:4.2.1
  • SDJPA:1.9.0
一些进一步测试

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

2 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:2)

jackson-databind库中的错误。升级后释放火车Gosling-SR3一旦发布。

请参阅https://jira.spring.io/browse/DATAREST-716https://jira.spring.io/browse/DATAREST-743