mirror of
https://gitee.com/dromara/sa-token.git
synced 2026-02-27 16:50:24 +08:00
解决jfinal5开启兼容json请求解析功能后报类转换异常问题
解决jfinal5开启兼容json请求解析功能后报类转换异常问题。
//JFinal新版本已经支持直接解析contentType=application/json请求的rawdata数据了
constants.setResolveJsonRequest(true);
java.lang.ClassCastException: io.undertow.servlet.spec.HttpServletRequestImpl cannot be cast to com.jfinal.core.paragetter.JsonRequest
at com.jfinal.core.paragetter.ModelGetter.get(ModelGetter.java:41)
at com.jfinal.core.paragetter.ParaProcessor.get(ParaProcessor.java:51)
at com.jfinal.aop.Invocation.<init>(Invocation.java:86)
at cn.dev33.satoken.jfinal.SaTokenActionHandler.handle(SaTokenActionHandler.java:82)
at com.jfinal.ext.handler.ContextPathHandler.handle(ContextPathHandler.java:48)
at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:90)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:67)
at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
Signed-off-by: yangghosts <yangghosts@163.com>
This commit is contained in:
@@ -74,9 +74,12 @@ public class SaTokenActionHandler extends ActionHandler {
|
||||
// Controller controller = action.getControllerClass().newInstance();
|
||||
controller = controllerFactory.getController(action.getControllerClass());
|
||||
CPI._init_(controller, action, request, response, urlPara[0]);
|
||||
//加入SaToken上下文处理
|
||||
if (resolveJson && controller.isJsonRequest()) {
|
||||
// 注入 JsonRequest 包装对象接管 request
|
||||
controller.setHttpServletRequest(jsonRequestFactory.apply(controller.getRawData(), controller.getRequest()));
|
||||
}
|
||||
//加入SaToken上下文处理
|
||||
SaControllerContext.hold(controller);
|
||||
|
||||
if (devMode) {
|
||||
if (actionReporter.isReportAfterInvocation(request)) {
|
||||
new Invocation(action, controller).invoke();
|
||||
|
||||
Reference in New Issue
Block a user