package com.safeluck.aaej.app.controller
|
|
import com.safeluck.aaej.base.dbhelper.impl.DBProxy
|
import com.safeluck.aaej.base.dbhelper.impl.DbHelper
|
import com.safeluck.aaej.base.vo.JsonResult
|
import org.apache.log4j.Logger
|
import org.springframework.beans.factory.annotation.Autowired
|
import org.springframework.boot.web.servlet.error.ErrorController
|
import org.springframework.web.bind.annotation.ControllerAdvice
|
import org.springframework.web.bind.annotation.ExceptionHandler
|
import org.springframework.web.bind.annotation.ResponseBody
|
import org.springframework.web.bind.annotation.RestControllerAdvice
|
import org.springframework.web.context.request.NativeWebRequest
|
import org.springframework.web.context.request.ServletWebRequest
|
|
import javax.servlet.http.HttpServletRequest
|
import java.io.PrintWriter
|
import java.io.StringWriter
|
import java.util.Date
|
import java.util.HashMap
|
|
|
/**
|
* 系统全局异常Advice,拦截对应异常进行处理
|
*/
|
@RestControllerAdvice
|
//@ControllerAdvice
|
class ExceptionHandleController {
|
private val logger = Logger.getLogger(this.javaClass)
|
|
|
@Autowired
|
internal lateinit var dbHelper: DbHelper
|
@Autowired
|
internal lateinit var dbProxy: DBProxy
|
|
|
@ExceptionHandler(Exception::class)
|
fun processException(request: NativeWebRequest, e: Exception): Any {
|
// ErrorController
|
e.printStackTrace()
|
return JsonResult.failed(e)
|
// request.q
|
// val log = sys_error_log()
|
// log.data_time = Date()
|
// log.error_text = exception2String(e)
|
// val httpServletRequest = (request as ServletWebRequest).request
|
// log.module = httpServletRequest.method + "," + httpServletRequest.requestURI
|
// logger.error(log.error_text)
|
// dbProxy.executebKey(DBAlias.center) { dbHelper.add(log) }
|
// return log.error_text
|
}
|
|
private fun exception2String(e: Throwable): String {
|
val sw = StringWriter()
|
val pw = PrintWriter(sw, true)
|
e.printStackTrace(pw)
|
pw.flush()
|
sw.flush()
|
var result = sw.toString()
|
if (result.length > 4000) {
|
result = result.substring(0, 4000)
|
}
|
return result
|
}
|
|
}
|