我已经实现了一个RestControllerAdvice来处理Spring Boot-Tomcat Web应用程序中的异常,如下所示:
var thisObj = this;
var wnd = Ext.create('myApp.view.desktop.something.CustomWindow',{
onButtonSubmitClick: function(){
thisObj.doSomething();
this.close();
}
});
wnd.show();
因此,每当一个Web请求导致异常时,我都希望上述处理程序返回状态500和一个具有以下内容的json:“ {” technicalMessage“:” NullPointerException“,” userMessage“:”错误代码001“}
但是,不是一个html错误页面来打印整个堆栈跟踪,如下所示:
SimpleResponse具有以下定义:
getCssStyleValue: function(name, value) {
var testElement = this.getTestElement(),
computedStyle = this.testElementComputedStyle,
style = testElement.style;
style.setProperty(name, value);
if (Ext.browser.is.Firefox) {
testElement.offsetHeight;
}
value = computedStyle.getPropertyValue(name);
style.removeProperty(name);
return value;
}
我放置了调试点,并观察到代码流确实正确到达以返回RestControllerAdvice的handleException语句。我认为一些tomcat如何忽略我的响应并显示异常堆栈跟踪。如何使我的应用程序在json中返回错误消息?
答案 0 :(得分:0)
我可以解决问题。使用@RequestMapping(produces = MediaType.application_pdf_value)注释的rest控制器正在发生此问题。一些如何引发错误并由错误处理程序接收错误时,由于实际控制器的产生属性,POJO未转换为JSON的情况。我删除了Produces属性,而是将内容类型显式设置为响应。现在,这两种情况都可以正常工作,可以下载pdf或显示异常消息显示。