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

标签 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 则不会出现问题

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

  • 特别提款权:2.4.1
  • SFW:4.2.1
  • SDJPA:1.9.0
一些进一步的测试

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

最佳答案

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

关于java - Spring Data Rest 2.4 间歇性错误(ClassCastException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572525/

相关文章:

java - 使用 Stax 进行 DTD 解析

java - Spring框架-同一类型的多个ModelAttributes

java数据库对象级安全性

python - 将 APIView 添加到 Django REST Framework 可浏览 API

spring - REST 排序以负 ('-' ) 符号降序,而不是 <propertyName>.dir=desc

java - 无法在android中的最终hashmap上获得固定值

java - accessDeniedPage 重定向,而不仅仅是显示相应页面的 RSS 提要

rest - 最简单的服务器到服务器身份验证

java - org.slf4j :slf4j-jcl:jar is missing 的“依赖项.依赖项.版本”

java - Spring RestController POST 接受基本的 HTML 表单