класс данных kotlin HttpMessageNotReadableException

Я пробую этот код с почтальоном, но ничего не работает, почему?

Что я посылаю:

{ "name":"front_msel", "gitlabId": "83", "fichierVersion":"VERSION" } 

Мой контроллер пружины:

 @RestController @RequestMapping("/projects") class ProjectController(val projectRepository: ProjectRepository) { private val log = LoggerFactory.getLogger(ProjectController::class.java) @PostMapping() fun saveProject(@RequestBody payload: Project): String { log.info("project: '{}'", payload.toString()) return projectRepository.save(payload).gitlabId?:"-1" } } 

Что я получаю:

 { "timestamp": 1505917417221, "status": 400, "error": "Bad Request", "exception": "org.springframework.http.converter.HttpMessageNotReadableException", "message": "JSON parse error: Can not construct instance of com.......model.Project: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.......model.Project: no suitable constructor found, can not deserialize from Object value (missing default constructor or creator, or perhaps need to add/enable type information?)\n at [Source: java.io.PushbackInputStream@66ba61d9; line: 2, column: 2]", "path": "/projects" 

}

Мой класс данных проекта:

 data class Project(val name:String?, val gitlabId: String?, val fichierVersion: String?) 

Я удвоил контрольные параметры, это не ошибка в формулировке, что это не работает?

РЕДАКТИРОВАТЬ :

Благодаря Тодду проблема была решена путем добавления нулевого значения к моему параметру, чтобы создать конструктор нулевых аргументов. Благодаря !

 data class Project(val name:String? = null, val gitlabId: String? = null, val fichierVersion: String? = null) 

У меня это получилось, сделав два небольших изменения.

Во-первых, поскольку все поля вашего Project имеют значение NULL, укажите значения по умолчанию, чтобы компилятор сгенерировал конструктор нулевых аргументов:

 data class Project(val name:String? = null, val gitlabId: String? = null, val fichierVersion: String? = null) 

Во-вторых, кажется, что Spring хочет, чтобы ваши поля были в snakey_case а не в camelCase , поэтому измените свою полезную нагрузку на это:

 { "name":"front_msel", "gitlab_id": "83", "fichier_version":"VERSION" }