[英]How to print stack trace in Spring MVC Error handler
我在我的應用程序中使用 Spring SimpleMappingExceptionResolver
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<map>
<entry key="Exception" value="error.htm"/>
</map>
</property>
<property name="defaultErrorView" value="error.htm" />
</bean>
我的錯誤處理程序也很簡單
@Controller
@RequestMapping("error.htm")
public class ErrorController {
@RequestMapping(method = RequestMethod.GET)
public ModelAndView getErrorReport(HttpServletRequest request) {
return new ModelAndView("/WEB-INF/jsp/error.jsp");
}
@RequestMapping(method = RequestMethod.POST)
public ModelAndView getErrorPostReport(HttpServletRequest request,HttpServletResponse response) {
TreeMap<String,Object> map=new TreeMap<String,Object>();
map.put("isDataChange", true);
map.put("isBigError", true);
return new ModelAndView(JSONView.RenderObject(map, response));
}
}
如何在我的錯誤 Controller 中打印異常消息和異常堆棧跟蹤(或 email)?
提前致謝
更新
謝謝回復。 我想在 jsp 以及控制台中打印堆棧跟蹤。 我還想在 ErrorController 本身中訪問 object,以便我可以將該信息用於 email 日志(因為一些調用基於 ajax,(他們使用 POST),error.jsp 在那里沒有用,所以我需要一些方法來訪問該信息在 controller 本身)。
由於您的getErrorReport
方法除了返回 jsp 頁面外什么都不做,您可以在 bean 聲明中返回它:
<property name="defaultErrorView" value="/WEB-INF/jsp/error.jsp" />
在頁面中您可以訪問exception
model object:
<c:forEach items="${exception.stackTrace}" var="element">
<c:out value="${element}">
</c:forEach>
如評論中所述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.