2016-06-14 4 views
1

Моя программа написана на Java 8, когда я использую тип LocalDateTime, это даст мне следующее сообщение об ошибке:Не подходит конструктор найдено для типа [простой тип, класс java.time.LocalDateTime]

No suitable constructor found for type [simple type, class java.time.LocalDateTime]: can not instantiate from JSON object (missing default constructor or creator, or perhaps need to add/enable type information?)
at [Source: [[email protected]; line: 1, column: 80] (through reference chain: com.boot.framwork.entity.UserInfo["accessTime"])

лицо выглядит так:

public class UserInfo implements Serializable { 

private static final long serialVersionUID = 1L; 

private String username; 

private int age; 

private LocalDateTime accessTime; 

private Date time; 

private List<String> list = new ArrayList<String>(); 

private boolean isMarried; 

public UserInfo() { 

} 

Он работал, когда я не использовал LocalDateTime

+0

Я использую redis как кеш – Terry

ответ

1

Мне кажется, что у вас нет поддержки JSR310. Джексону нужна дополнительная настройка, чтобы иметь возможность распознавать Java 8 Дата & Типы данных Time API. Вы можете добавить его с помощью зависимостей проекта, просто добавить зависимость от this

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-jsr310</artifactId> 
    <version>2.7.4</version> 
</dependency> 

или если вы используете Gradle

compile group: 'com.fasterxml.jackson.datatype', name: 'jackson-datatype-jsr310', version: '2.7.4' 

Поскольку вы используете SpringBoot, это должно быть достаточно, следовательно, нет, создать Bean типа JSR310Module вручную.