【发布时间】:2021-07-07 13:19:47
【问题描述】:
我有一个使用 Spring Boot 编写的 REST API。现在我想加强错误处理。如果用户发送无效的 JSON 或我无法反序列化到我的 DTO 的 JSON,我会通知用户究竟出了什么问题,例如意外的属性名称、类型等。我仍然不想公开有关实现的任何信息(例如堆栈跟踪、类名)。
默认 Spring 实现返回
InvalidFormatException: Cannot deserialize value of type `java.lang.Integer` from String \"aaa\": not a valid Integer value\n at [Source: (PushbackInputStream); line: 10, column: 19]
(through reference chain: com.yell.statementofwork.model.StatementOfWorkCompletionDtoSe[\"purchasedProducts\"]->java.util.ArrayList[0]->com.yell.statementofwork.model.PurchasedProductDtoSe[\"quantity\"])",
这几乎是好的,但我更愿意从中删除有关类的信息。 你有什么建议吗?
【问题讨论】:
-
conf
server.error.include-message=always&server.error.include-binding-errors=always
标签: java json spring spring-boot jackson