Spring boot 2.0.0.BUILD-SNAPSHOT rest:无法覆盖_serializer?

时间:2017-04-16 00:09:53

标签: java hibernate spring-boot jackson

用gradle刷新Spring启动项目后,出现以下错误:

{
  "timestamp": 1492300922752,
  "status": 500,
  "error": "Internal Server Error",
  "exception": "org.springframework.http.converter.HttpMessageNotWritableException",
  "message": "Could not write JSON document: Can not override _serializer: had a org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$NestedEntitySerializer, trying to set to com.fasterxml.jackson.databind.ser.std.StringSerializer (through reference chain: org.springframework.hateoas.PagedResources[\"_embedded\"]->java.util.Collections$UnmodifiableMap[\"orders\"]->java.util.ArrayList[0]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not override _serializer: had a org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$NestedEntitySerializer, trying to set to com.fasterxml.jackson.databind.ser.std.StringSerializer (through reference chain: org.springframework.hateoas.PagedResources[\"_embedded\"]->java.util.Collections$UnmodifiableMap[\"orders\"]->java.util.ArrayList[0])",
  "path": "/orders"
}

我使用2.0.0.BUILD-SNAPSHOT

2017-04-16 02:00:58.845  INFO 36126 --- [  restartedMain] d.p.o.OrderRestServiceApplication        : Started OrderRestServiceApplication in 11.163 seconds (JVM running for 37480.653)
2017-04-16 02:02:02.714  INFO 36126 --- [nio-8083-exec-2] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring FrameworkServlet 'dispatcherServlet'
2017-04-16 02:02:02.714  INFO 36126 --- [nio-8083-exec-2] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started
2017-04-16 02:02:02.717  INFO 36126 --- [nio-8083-exec-2] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 3 ms
2017-04-16 02:02:02.717 DEBUG 36126 --- [nio-8083-exec-2] o.s.b.w.s.f.OrderedRequestContextFilter  : Bound request context to thread: org.apache.catalina.connector.RequestFacade@5b2fb354
2017-04-16 02:02:02.724 DEBUG 36126 --- [nio-8083-exec-2] org.hibernate.SQL                        : select order0_.id as id1_1_, order0_.create_date as create_d2_1_, order0_.customer_id as customer3_1_, order0_.ordered_date as ordered_4_1_, order0_.payment_order_id as payment_5_1_, order0_.shipping_order_id as shipping6_1_, order0_.status as status7_1_ from orders order0_ limit ?
Hibernate: select order0_.id as id1_1_, order0_.create_date as create_d2_1_, order0_.customer_id as customer3_1_, order0_.ordered_date as ordered_4_1_, order0_.payment_order_id as payment_5_1_, order0_.shipping_order_id as shipping6_1_, order0_.status as status7_1_ from orders order0_ limit ?
2017-04-16 02:02:02.728 DEBUG 36126 --- [nio-8083-exec-2] org.hibernate.SQL                        : select count(order0_.id) as col_0_0_ from orders order0_
Hibernate: select count(order0_.id) as col_0_0_ from orders order0_
2017-04-16 02:02:02.749  WARN 36126 --- [nio-8083-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON document: Can not override _serializer: had a org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$NestedEntitySerializer, trying to set to com.fasterxml.jackson.databind.ser.std.StringSerializer (through reference chain: org.springframework.hateoas.PagedResources["_embedded"]->java.util.Collections$UnmodifiableMap["orders"]->java.util.ArrayList[0]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not override _serializer: had a org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$NestedEntitySerializer, trying to set to com.fasterxml.jackson.databind.ser.std.StringSerializer (through reference chain: org.springframework.hateoas.PagedResources["_embedded"]->java.util.Collections$UnmodifiableMap["orders"]->java.util.ArrayList[0])
2017-04-16 02:02:02.750  WARN 36126 --- [nio-8083-exec-2] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON document: Can not override _serializer: had a org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$NestedEntitySerializer, trying to set to com.fasterxml.jackson.databind.ser.std.StringSerializer (through reference chain: org.springframework.hateoas.PagedResources["_embedded"]->java.util.Collections$UnmodifiableMap["orders"]->java.util.ArrayList[0]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not override _serializer: had a org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$NestedEntitySerializer, trying to set to com.fasterxml.jackson.databind.ser.std.StringSerializer (through reference chain: org.springframework.hateoas.PagedResources["_embedded"]->java.util.Collections$UnmodifiableMap["orders"]->java.util.ArrayList[0])
2017-04-16 02:02:02.750 DEBUG 36126 --- [nio-8083-exec-2] o.s.b.w.s.f.OrderedRequestContextFilter  : Cleared thread-bound request context: org.apache.catalina.connector.RequestFacade@5b2fb354

2 个答案:

答案 0 :(得分:1)

我将我的项目降级为springBootVersion 1.5.2.RELEASE

答案 1 :(得分:1)

我最近遇到了与Spring Boot 2.0.0.M2相同的问题,但发现2.0.0.M2使用的Jackson版本有一个缺陷。从2.9.0.pr3降为2.8.9。它现在有效。