Java 无法在Spring引导中使用自定义HttpMessageNodeReadableException错误消息

Java 无法在Spring引导中使用自定义HttpMessageNodeReadableException错误消息,java,json,spring,spring-boot,exception,Java,Json,Spring,Spring Boot,Exception,我目前正在尝试为异常提供自定义消息,但遇到了HttpMessageNodeDataableException问题 我有一个ErrorDetails类: public class ErrorDetails { private Date timestamp; private String message; private String details; public ErrorDetails(Date timestamp, String message, Str

我目前正在尝试为异常提供自定义消息,但遇到了HttpMessageNodeDataableException问题

我有一个ErrorDetails类:

public class ErrorDetails {
    private Date timestamp;
    private String message;
    private String details;



    public ErrorDetails(Date timestamp, String message, String details) {
        super();
        this.timestamp = timestamp;
        this.message = message;
        this.details = details;
    }

    public Date getTimestamp() {
        return timestamp;
    }

    public void setTimestamp(Date timestamp) {
        this.timestamp = timestamp;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getDetails() {
        return details;
    }

    public void setDetails(String details) {
        this.details = details;
    }
我还有一个自定义异常处理程序:

@Order(Ordered.HIGHEST_PRECEDENCE)
@ControllerAdvice
@RestController
public class CustomizedExceptionHandler extends ResponseEntityExceptionHandler {
    @ExceptionHandler(HttpMessageNotReadableException.class)
    @Override
    public final ResponseEntity<Object> handleHttpMessageNotReadable(HttpMessageNotReadableException ex, HttpHeaders headers, HttpStatus status, WebRequest request){
        ErrorDetails errorDetails = new ErrorDetails(new Date(), "hello",request.getDescription(true));
        errorDetails.setMessage("Testing message");
        return new ResponseEntity<>(errorDetails,HttpStatus.NOT_ACCEPTABLE);
    }
}
JSON请求:

{
    "name": "An workout",
    "dateToComplete": "Today",
    "description": "Sleep Day",
    "priority": "lala",
    "completed": false
}
期望的效果只是出现测试消息,而不是冗长的描述

我在Eclipse控制台中也可以看到:

警告16508-[nio-5000-exec-4].w.s.m.s.DefaultHandlerExceptionResolver:已解决[org.springframework.http.converter.httpMessageNodeAbleException:JSON解析错误:无法从字符串拉拉反序列化int类型的值:不是有效的整数值;嵌套异常是com.fasterxml.jackson.databind.exc.InvalidFormatException:无法从字符串拉拉反序列化int类型的值:不是有效的整数值 通过引用链在[Source:PushbackInputStream;第5行,第17列]处:com.tdl.model.ToDoNote[priority]]

我将状态更改为“不可接受”,只是为了更清楚地看到是否返回了自定义错误

任何帮助都将不胜感激。谢谢

编辑

为InvalidFormatException添加了ExceptionHandler,但未做任何更改。我仍然收到与以前相同的默认errorexception消息

@ExceptionHandler(InvalidFormatException.class)
    public final ResponseEntity<Object> handleInvalidFormat(InvalidFormatException ex, HttpHeaders headers, HttpStatus status, WebRequest request){
        ErrorDetails errorDetails = new ErrorDetails(new Date(), "hello",request.getDescription(true));
        errorDetails.setMessage("Testing message");
        return new ResponseEntity<>(errorDetails,HttpStatus.NOT_ACCEPTABLE);

    }

问题解决了。我的自定义异常类位于一个名称不正确的包中。它被称为“异常”。而整个项目所在的位置应该是com.app.exception。

尝试使用InvalidFormatExceptionexception@Deadpool已尝试,但没有更改:/have handleHttpMessageNotReadable和InvalidFormatException异常处理程序现在
@ExceptionHandler(InvalidFormatException.class)
    public final ResponseEntity<Object> handleInvalidFormat(InvalidFormatException ex, HttpHeaders headers, HttpStatus status, WebRequest request){
        ErrorDetails errorDetails = new ErrorDetails(new Date(), "hello",request.getDescription(true));
        errorDetails.setMessage("Testing message");
        return new ResponseEntity<>(errorDetails,HttpStatus.NOT_ACCEPTABLE);

    }