You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署Spring Boot应用至Tomcat时遇URL未规范化请求被拒问题

解决Spring Boot部署Tomcat时"The request was rejected because the URL was not normalized"错误

我来帮你排查这个问题,这个错误一般和Tomcat的URL规范化安全校验机制有关,咱们一步步来分析解决:

  • 先检查请求URL的规范性
    先确认你输入的地址有没有异常,比如是不是不小心输入了双斜杠(像http://localhost:8080//serviceapp/)、或者包含../这类路径遍历字符?Tomcat默认会拦截这类不符合规范的URL,先确保你的请求地址是完全正确的http://localhost:8080/serviceapp/,没有多余的特殊字符。

  • 调整Tomcat的安全配置(谨慎使用)
    如果你的URL确实没问题,但还是被拦截,可以修改Tomcat的配置来放宽规范化检查:
    找到Tomcat目录下的conf/context.xml,在<Context>标签里添加相关属性:

    <Context antiResourceLocking="false" privileged="true"
             normalize="false" />
    

    或者在conf/server.xml的<Host>节点下调整Valve的参数,比如设置allowUnsafeLegacyRedirects="true"。不过要注意,关闭规范化检查会降低Tomcat的安全防护能力,只建议在测试环境或者确定业务场景安全的情况下使用。

  • 确认war包部署路径
    检查你的Spring Boot war包部署到Tomcat的webapps目录后,文件名是不是serviceapp.war?如果war包名称是其他的,访问路径也要对应调整,比如包名是my-service.war,那访问地址应该是http://localhost:8080/my-service/,路径不匹配也可能触发这个错误。

  • 排查Spring Boot的Servlet/Filter配置
    如果你在应用里自定义了Servlet、Filter或者使用了特殊的@RequestMapping路径规则,可能会导致Tomcat对URL的解析出现异常。检查一下这些配置,确保路径映射都是标准的格式,没有使用非常规的字符或者匹配规则。

内容的提问来源于stack exchange,提问作者learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:14:50