Я пытаюсь реализовать проверку в Spring REST, следуя этому руководство. Хотя мой код в Koltin, в отличие от туториала.
Мой код выглядит следующим образом:
Класс объекта
@Entity
class PodcastEntity(@Id @GeneratedValue(strategy = GenerationType.AUTO) @NotNull
var id: Long = 0,
@field:NotEmpty(message = "Please provide an author")
var author: String,
@field:NotEmpty(message = "Please provide a title")
var title: String,
@field:NotEmpty(message = "Please provide a description")
var description: String,
@field:NotEmpty(message = "Please provide category one")
var categoryOne: String,
@field:NotEmpty(message = "Please provide category two")
var categoryTwo: String,
var filePath: String = "")
Мой метод публикации выглядит так в controller
-
@PostMapping("details")
fun addPodcast(@Valid @RequestBody podcastEntity: PodcastEntity) {
podcastService.addPodcast(podcastEntity)
}
Мой запрос POST в почтальоне выглядит так:
{
"author" : "me 3",
"title" : "File three",
"description" : "this is a test desc"
}
Поскольку categoryOne
и categoryTwo
отсутствуют, и я не обрабатывал исключение самостоятельно, моя консоль должна отображать MethodArgumentNotValidException
в соответствии с руководством. Однако я не получаю такого исключения. Я получаю исключение HttpMessageNotReadableException
-
Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Instantiation of [simple type, class com.krtkush.test.entities.PodcastEntity] value failed for JSON property categoryOne due to missing (therefore NULL) value for creator parameter categoryOne which is a non-nullable type; nested exception is com.fasterxml.jackson.module.kotlin.MissingKotlinParameterException: Instantiation of [simple type, class com.krtkush.test.entities.PodcastEntity] value failed for JSON property categoryOne due to missing (therefore NULL) value for creator parameter categoryOne which is a non-nullable type at [Source: (PushbackInputStream); line: 5, column: 1] (through reference chain: com.krtkush.test.entities.PodcastEntity["categoryOne"])]
Я не могу понять, где я ошибаюсь. Некоторая помощь, пожалуйста?