shiro整合spring时出现405错误

Resolved [org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported 405] 问题如何处理?

  • 问题起源
    • 代码结构
    • 问题发现
  • 问题解决
    • 分析
    • 解决方法

问题起源

这个问题是在做shiro和spring整合时候发现的,在此做个记录
git地址:shiro简单整合spring

代码结构

shiro整合spring时出现405错误_第1张图片

问题发现

shiro整合spring时出现405错误_第2张图片
shiro整合spring时出现405错误_第3张图片
shiro整合spring时出现405错误_第4张图片

问题解决

分析

debug 去DispatcherServlet 这个类中找到doDispatch()方法,断点到此步;
shiro整合spring时出现405错误_第5张图片
会发现请求进来的时候
HandlerAdapter 是:RequestMappingHandlerAdapter,那么会调用他的handleInternal()方法
shiro整合spring时出现405错误_第6张图片
shiro整合spring时出现405错误_第7张图片
shiro整合spring时出现405错误_第8张图片
shiro整合spring时出现405错误_第9张图片
shiro整合spring时出现405错误_第10张图片
这里可以看到ResourceHttpRequestHandler 此类是静态资源处理类,禁止以post请求访问静态资源
shiro整合spring时出现405错误_第11张图片
shiro整合spring时出现405错误_第12张图片

解决方法

1)重定向
2)使用允许的get,head方式访问
shiro整合spring时出现405错误_第13张图片
最后:
git地址:shiro简单整合spring

你可能感兴趣的:(spring)