@FeignClient(value = "content-api", fallbackFactory = ContentServiceClientFallbackFactory.class)
public interface ContentServiceClient {
@ResponseBody
@GetMapping("/content/r/coursepublish/{courseId}")
CoursePublish getCoursepublish(@PathVariable("courseId") Long courseId);
}
feign远程调用时会将字符串的时间转为LocalDateTime,此时会发生如下错误
Caused by: org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type `java.time.LocalDateTime` from String "2019-09-04 09:56:19": Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text '2019-09-04 09:56:19' could not be parsed at index 10; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.time.LocalDateTime` from String "2019-09-04 09:56:19": Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text '2019-09-04 09:56:19' could not be parsed at index 10
at [Source: (PushbackInputStream); line: 1, column: 1015] (through reference chain: com.xuecheng.content.model.po.CoursePublish["createDate"])
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:285)
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:243)
at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:105)
... 38 more
解决办法,feign默认使用jackson序列化,利用注解指定转换模式即可
@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime onlineDate;