Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
X
XXL-JOB
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
靳帅
XXL-JOB
Commits
f5155e9d
Unverified
提交
f5155e9d
authored
5月 21, 2020
作者:
许雪里
提交者:
GitHub
5月 21, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1649 from jacobslei/master
fixed: handler 可能为非HandlerMethod 类型,出现类型转换异常
上级
67e54c44
19708ebe
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
66 行增加
和
63 行删除
+66
-63
WebExceptionResolver.java
...l/job/admin/controller/resolver/WebExceptionResolver.java
+66
-63
没有找到文件。
xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java
浏览文件 @
f5155e9d
package
com
.
xxl
.
job
.
admin
.
controller
.
resolver
;
import
com.xxl.job.admin.core.exception.XxlJobException
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.admin.core.util.JacksonUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.servlet.HandlerExceptionResolver
;
import
org.springframework.web.servlet.ModelAndView
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
/**
* common exception resolver
*
* @author xuxueli 2016-1-6 19:22:18
*/
@Component
public
class
WebExceptionResolver
implements
HandlerExceptionResolver
{
private
static
transient
Logger
logger
=
LoggerFactory
.
getLogger
(
WebExceptionResolver
.
class
);
@Override
public
ModelAndView
resolveException
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
{
if
(!(
ex
instanceof
XxlJobException
))
{
logger
.
error
(
"WebExceptionResolver:{}"
,
ex
);
}
// if json
boolean
isJson
=
false
;
HandlerMethod
method
=
(
HandlerMethod
)
handler
;
ResponseBody
responseBody
=
method
.
getMethodAnnotation
(
ResponseBody
.
class
);
if
(
responseBody
!=
null
)
{
isJson
=
true
;
}
// error result
ReturnT
<
String
>
errorResult
=
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
ex
.
toString
().
replaceAll
(
"\n"
,
"<br/>"
));
// response
ModelAndView
mv
=
new
ModelAndView
();
if
(
isJson
)
{
try
{
response
.
setContentType
(
"application/json;charset=utf-8"
);
response
.
getWriter
().
print
(
JacksonUtil
.
writeValueAsString
(
errorResult
));
}
catch
(
IOException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
}
return
mv
;
}
else
{
mv
.
addObject
(
"exceptionMsg"
,
errorResult
.
getMsg
());
mv
.
setViewName
(
"/common/common.exception"
);
return
mv
;
}
}
package
com
.
xxl
.
job
.
admin
.
controller
.
resolver
;
import
com.xxl.job.admin.core.exception.XxlJobException
;
import
com.xxl.job.core.biz.model.ReturnT
;
import
com.xxl.job.admin.core.util.JacksonUtil
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.method.HandlerMethod
;
import
org.springframework.web.servlet.HandlerExceptionResolver
;
import
org.springframework.web.servlet.ModelAndView
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.IOException
;
/**
* common exception resolver
*
* @author xuxueli 2016-1-6 19:22:18
*/
@Component
public
class
WebExceptionResolver
implements
HandlerExceptionResolver
{
private
static
transient
Logger
logger
=
LoggerFactory
.
getLogger
(
WebExceptionResolver
.
class
);
@Override
public
ModelAndView
resolveException
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
{
if
(!(
ex
instanceof
XxlJobException
))
{
logger
.
error
(
"WebExceptionResolver:{}"
,
ex
);
}
// if json
boolean
isJson
=
false
;
if
(
handler
instanceof
HandlerMethod
)
{
HandlerMethod
method
=
(
HandlerMethod
)
handler
;
ResponseBody
responseBody
=
method
.
getMethodAnnotation
(
ResponseBody
.
class
);
if
(
responseBody
!=
null
)
{
isJson
=
true
;
}
}
// error result
ReturnT
<
String
>
errorResult
=
new
ReturnT
<
String
>(
ReturnT
.
FAIL_CODE
,
ex
.
toString
().
replaceAll
(
"\n"
,
"<br/>"
));
// response
ModelAndView
mv
=
new
ModelAndView
();
if
(
isJson
)
{
try
{
response
.
setContentType
(
"application/json;charset=utf-8"
);
response
.
getWriter
().
print
(
JacksonUtil
.
writeValueAsString
(
errorResult
));
}
catch
(
IOException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
}
return
mv
;
}
else
{
mv
.
addObject
(
"exceptionMsg"
,
errorResult
.
getMsg
());
mv
.
setViewName
(
"/common/common.exception"
);
return
mv
;
}
}
}
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论