**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
上个月关门了。
改进这个问题
我试图覆盖spring rest上异常的默认响应,插入一个实体列表:
在@restcontroller上:
@ExceptionHandler(EntityConflictException.class)
public ResponseEntity<List<Entity>> exceptionHandler(EntityConflictException exception) {
return new ResponseEntity<>(exception.getList(), HttpStatus.CONFLICT);
}
例外情况:
@ResponseStatus(value = HttpStatus.CONFLICT)
public class EntityConflictException extends RuntimeException {
List<Entity> entities;
public EntityConflictException(List<Entity> entities) {
super("message");
this.entities = entities;
}
public EntityConflictException(String message) {
super(message);
}
public EntityConflictException(String message, Throwable cause) {
super(message, cause);
}
public List<Entity> getList() {
return entities;
}
}
@service上引发异常:
throw new EntityConflictException(entitiesList);
答案总是:
{
"timestamp": "2021-03-27 20:15:36",
"status": 409,
"error": "Conflict",
"exception": "EntityConflictException",
"message": "Conflict",
"path": "/endpoint"
}
2条答案
按热度按时间9rnv2umw1#
我想你必须搬走
@ResponseStatus(value = HttpStatus.CONFLICT)
来自entityconflictexception。它注册为该异常的defalut处理程序,并且不使用自定义异常处理方法。看看这篇spring引导异常处理的文章,你就会明白你所使用的这两种异常处理方式并不是要一起使用的。同时指出使用
@ResponseStatus
无法覆盖错误消息。x9ybnkn62#
问题是我把一个hibernate实体传递给responseentity。然后出现了典型的错误“未能延迟初始化”,但是控制台上没有显示这方面的内容。我必须调试才能找到答案。
错误发生在第113行的servletinvaccablehandler方法中