问题记录
项目上线后出现一个奇怪的bug,前端请求到不了后端,后端方法里打的日志都没记录,上线前本地测试一点问题没有,真TM奇怪!顿时迷茫加无助,只好求助组长了,现象给他一描述,组长一语(去查一下tomcat的Catalina日志)道破天机,哎,这就是人与人之间的差别。我当时TM都不知道Catalina是个啥,于是让我百度了一下:
好,让实施去拿一下tomcat的Catalina的日志吧!
日志拿来一看都是这个Exception:java.lang.IllegalArgumentException: 在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中
好家伙,这我也没遇到过啊!不会呀!还好有百度,有CSDN,于是搜到了这个
链接: https://blog.csdn.net/weixin_39207535/article/details/108260666.
这不就好说了嘛!链接给实施甩过去,实施一改,问题解决。Prefect !
关键所在:
在server.xml中的Connector标签中加上:URIEncoding=“utf-8” relaxedPathChars="|{}[],%"
relaxedQueryChars="|{}[],%"
本次问题让我了解到:
1. tomcat的Catalina
2. tomact解决前端请求特殊字符的处理方法