问题出现:
tomcat由7.0.65升级到7.0.104后出现该问题
java.lang.IllegalArgumentException:在请求目标中找到无效字符。有效字符在RFC 7230和RFC 3986中定义
原因分析:
日志显示请求地址中包含不合法字符,出现400错误
tomcat高版本严格按照RFC 3986规范解析地址。该规范只允许包含 a-zA-Z 0-9 - _ . ~ 以及所有保留字符 ! * ’ ( ) ; : @ & = + $ , / ? # [ ]
7.0.65时地址中包含{},所以该地址在tomcat升级后出问题
解决办法:
一、在tomcat安装路径\conf\catalina.properties中,找到注释掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow=| ,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},表示把{}放行
二、 在./conf/service.xml中添加realxedQueryChars属性
原文:https://www.cnblogs.com/MT-1996/p/13274379.html