异常原因:url参数里面有特殊字符
Message Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986Description The server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).Exception
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:483)org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:684)org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)java.lang.Thread.run(Thread.java:745)Note The full stack trace of the root cause is available in the server logs.
解决方法如下:
catalina.properties上新加一行配置:tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
就可以解决问题了
如果上面方方法没有解决问题,再到tomcat配置文件server.xml,在Connector配置项添加红色标记部分
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
relaxedQueryChars="[]|{}^\`"<>"
redirectPort="8443" />