WebExceptionResolver.java 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package com.xxl.job.controller.resolver;
  2. import javax.servlet.http.HttpServletRequest;
  3. import javax.servlet.http.HttpServletResponse;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.web.bind.annotation.ResponseBody;
  7. import org.springframework.web.method.HandlerMethod;
  8. import org.springframework.web.servlet.HandlerExceptionResolver;
  9. import org.springframework.web.servlet.ModelAndView;
  10. import com.xxl.job.client.util.JacksonUtil;
  11. import com.xxl.job.core.model.ReturnT;
  12. /**
  13. * common exception resolver
  14. * @author xuxueli 2016-1-6 19:22:18
  15. */
  16. public class WebExceptionResolver implements HandlerExceptionResolver {
  17. private static transient Logger logger = LoggerFactory.getLogger(WebExceptionResolver.class);
  18. @Override
  19. public ModelAndView resolveException(HttpServletRequest request,
  20. HttpServletResponse response, Object handler, Exception ex) {
  21. logger.error("system catch exception:{}", ex);
  22. ModelAndView mv = new ModelAndView();
  23. HandlerMethod method = (HandlerMethod)handler;
  24. ResponseBody responseBody = method.getMethodAnnotation(ResponseBody.class);
  25. if (responseBody != null) {
  26. mv.addObject("result", JacksonUtil.writeValueAsString(new ReturnT<String>(500, ex.toString().replaceAll("\n", "<br/>"))));
  27. mv.setViewName("/common/common.result");
  28. } else {
  29. mv.addObject("exceptionMsg", ex.toString().replaceAll("\n", "<br/>"));
  30. mv.setViewName("/common/common.exception");
  31. }
  32. return mv;
  33. }
  34. }