原文地址:https://maiyikai.github.io/2020/02/27/1582786564/
Spring Boot 项目中都会嵌入 Tomcat, 在不同版本的 Spring Boot 下,也会嵌入不同版本的 Tomcat 。Tomcat 作用和用途这里就不用再赘述了…
在项目的迁移过程中,由原先的 Servlet 项目 改造成了 Sprong Boot 项目,导致了一系列的问题,目前让我觉得可以记录的就是当前的这个 Tomcat 的问题了。因为在正常情况下不会涉及到这种问题,但是进行服务版本改造的时候应该会出现类似的问题。
抛转引玉
访问地址:http://addression/ServerName/Web.jsp?json={“balibali”…}
访问后端时报错: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
浏览器返回的结果是:400
一开始,还不知道是什么原因,因为我用 PostMan 访问是正常的,但是用浏览器就出问题。Servlet 服务中是可以正常访问的,但是在 SpringBoot 项目中就不行了。
于是乎开始针对这个这个问题排查,奇怪的是这个异常信息在多次访问的之后,只打印一次,一开始还不重视它,但是整个日志就没有其他的异常信息
网络搜寻
一直找不到原因,于是就尝试使用这个异常去查,结果知道了原因: