#java #spring-boot #fasterxml
#java #весенняя загрузка #fasterxml
Вопрос:
Я поместил @JsonFormat
аннотацию в свой файл сопоставления json при сопоставлении с json
To class
. Я получаю HttpMessageNotReadableException
и InvalidFormatException
исключения с сообщением об ошибке синтаксического анализа.
Ниже приведен код для ссылки:
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.Email;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@ToString
@JsonInclude(JsonInclude.Include.NON_NULL)
@NoArgsConstructor
public class Request {
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
private Date customerDOB;
}
Я пытался обработать вышеуказанные исключения, но получаю bad request(400)
. Пожалуйста, помогите мне обработать указанное выше исключение.
Комментарии:
1. Пожалуйста, добавьте более подробную информацию о вашей проблеме, например, добавьте больше кода, соответствующая информация поможет людям лучше понять проблему и эффективно предоставить решение.
2. Я добавил @JsonFormat(форма = JsonFormat. Форма. СТРОКА, шаблон = «гггг-ММ-дд») личная дата customerDOB; во время синтаксического анализа я получаю исключение, но при получении postman 400, если я предоставляю 2019-Mar-04 в качестве customerDOB. Я хочу сообщение на postman вместо 400.
3. передайте данные запроса как 2019-03-04 и проверьте
4. Сервер отвечает с 400 правильно. 400 — неверный запрос, и пользователь не должен повторять запрос без каких-либо изменений. developer.mozilla.org/en-US/docs/Web/HTTP/Status/400
5. Я хочу обработать 400, чтобы пользователь мог видеть, какая именно ошибка возникает, для чего я добавил @SuppressWarnings(«непроверенный») защищенный ResponseEntity<Object> handleMethodInvalidFormatException(InvalidFormatException ex, заголовки HttpHeaders, статус HttpStatus, запрос WebRequest) { String ErrorCode = MessageSource.GetMessage(«config.generic. Код ошибки», null, null); String ErrorMessage = ex.GetMessage(); return (ResponseEntity<Object>) CreateErrorResponse(код ошибки, сообщение ошибки, HttpStatus. OK); } Но все еще не может обработать исключение
Ответ №1:
Как насчет того, чтобы добавить @ExceptionHandler
для этих исключений, и тогда у вас будет полный контроль над тем, какой код состояния и тело отправлять обратно в качестве ответа