zzwpublic头像

spring mvc 请求地址的 路径贪婪匹配 “请求错误:Request method ‘POST‘ not supported“

记一则花了大半天的异常:

起因:一个普通的请求,通过postman调用,但就是进不去程序内部

供应商原代码如下:

虽然这个写法怪怪的,个人也有所怀疑,但原代码通过前端浏览器就是可以正常执行。

进行postman执行就报 "请求错误:Request method 'POST' not supported"

再后来,发现 postman中 url误写 http://localhost:9009/production/updateWeightDetai

看到没 Detail 中的 l 漏了,但奇怪就是没报404。为啥?

突然知道为啥了。 同个类里有个相同路径的Get请求http://localhost:9009/production/{id}

坑死啊!!!

这个就是路径变量贪婪匹配,Spring MVC 路由匹配的经典坑!

Spring 路由匹配优先级补充(很多人不知道)

Spring 的匹配规则:

  • 精确固定路径 > 路径变量 > 通配符
  • 但是如果没有更精确的固定路径命中,/{xxx} 会吃掉几乎所有同前缀的请求 {id} 是占位符,不限定内容,字母、数字都能接,容错极强,很容易 “捡漏”。

解决方法么,自己网上找吧

转载自 CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/zzwpublic/article/details/170443938

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--