I'm facing issue when trying deserialize input coming from WWW form to enum class in Spring application, in Kotlin.
My DTO and enum classes:
enum class Status(@get:JsonValue val value: Int) {
NORMAL(0),
ERROR(1);
companion object {
@JvmStatic
@JsonCreator
fun of(number: Int?): Status? {
return values().find { it.value == number }
}
}
}
data class RequestData(val status: Status?)
Controller's POST request receiver method:
@PostMapping("/post")
fun register(@Valid data: RequestData, error: Errors) {}
When I make POST request with status = 0 using Postman, request's failing with following exception.
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method com.example.Controller.post, parameter data
When I make request with status = NORMAL then no exception, but that what I don't want.
I'm using application/x-www-form-urlencoded content type in POST request.
Please let me know where I'm doing wrong.