我托管在WebLogic 10.3.6的REST API 春天启动的应用程序,我想实现这些功能2:在Weblogic上
- 每当我的自定义异常发生时我想要发送带有消息的http响应,例如500 - “请求不能因为某件事解析......”
- 每当任何引发错误我想获得那通常打印到控制台(用于调试)堆栈跟踪
我试图解决第一部分按以下方式:
@ControllerAdvice
public class ExceptionHandlerAdvice {
@ExceptionHandler(MyException.class)
public ResponseEntity handleException(MyException e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
}
但是作为回应,我只拿到500内部服务器错误,没有消息
至于第二部分我想simmilar的做法,但没有错误消息无论是。
我该如何解决这个问题?
编辑:
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR, reason="This is a message I'd like to send")
它的工作原理,但我必须从代码中添加一些变量的消息,并且此: 我能达到被删除ExceptionHandlerAdvice和我的异常类使用注释,而不是像这样最好方法不允许它
EDIT2: 这是一个有点怪异,也许WebLogic Server中的行为,但是当我设置则httpStatus到HttpStatus.ACCEPTED我可以看到该消息,如果是HttpStatus.Forbidden或其他任何4xx错误我刚收到错误消息
你好虫族,人族在这里。也许你的服务抛出ExceptionHandlerAdvice无法控制的异常,尝试调试并打印到控制台与system.out – ducanhng
我特意在一个方法抛出MyException:抛出新的MyException(“some message”); – Zerg
你好zerg,在handleException方法中尝试抛出异常。在这里引用:即使我使用@ResponseStatus注释,并添加原因参数如: @ResponseStatus(https://stackoverflow.com/questions/39517876/spring-boot-not-overriding-exception-using-controlleradvice?rq=1 – ducanhng