tomcat Note: further occurrences of HTTP header parsing errors will be logged at DEBUG

简介: tomcat Note: further occurrences of HTTP header parsing errors will be logged at DEBUG

Tomcat出现这个异常:


20-May-2020 09:53:35.732 INFO [http-nio-8080-exec-7] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
 Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
  java.lang.IllegalArgumentException: Invalid character found in the HTTP protocol
    at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:570)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:502)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:818)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1627)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)


出现这个,顾名思义就是 解析header的时候,出错。

 

其实出现这种情况归根结底原因还是因为接口的问题,不过在不改动代码的情况下,

可以尝试,tomcat的server.xml中配置(添加maxHttpHeaderSize)


    <Connector port="8080" protocol="HTTP/1.1"
         maxHttpHeaderSize="8192" 
                           connectionTimeout="20000"
         maxThreads="150"
         maxSpareThreads="75"
               redirectPort="8443" />


如果加了还是一直出现错误,那么就得看对应的接口了,特别是Get方式的接口,着重看传输的参数是不是包含了


一些特殊符号没有进行URL转移,例如涉及:{ } 这种特殊符号。


这种情形,可以尝试在 tomcat的catalina.properties的最后一行改为:


tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}


如果你改了这个还是照样出错,  那么我建议从咱们的接口入手,虽然其实报这个错误,并不影响接口的使用。


但是如果想避免,可以尝试把这类Get方式的接口,改成Post方式,这样就可以有效避免这些过长的参数以及特殊符号参数,


通过post放入到body里面去传递。


最后,如果你按照上面的方法都进行了排查都没得到解决,这时候再看一眼服务器的tomcat的版本,和你打包时用的tomcat的版本,保持版本一直再试试。

 

相关文章
|
5月前
|
XML 网络协议 Java
JavaWeb -- HTTP -- WEB服务器TOMCAT
JavaWeb -- HTTP -- WEB服务器TOMCAT
|
2月前
|
监控 网络协议 应用服务中间件
【Tomcat源码分析】从零开始理解 HTTP 请求处理 (第一篇)
本文详细解析了Tomcat架构中复杂的`Connector`组件。作为客户端与服务器间沟通的桥梁,`Connector`负责接收请求、封装为`Request`和`Response`对象,并传递给`Container`处理。文章通过四个关键问题逐步剖析了`Connector`的工作原理,并深入探讨了其构造方法、`init()`与`start()`方法。通过分析`ProtocolHandler`、`Endpoint`等核心组件,揭示了`Connector`初始化及启动的全过程。本文适合希望深入了解Tomcat内部机制的读者。欢迎关注并点赞,持续更新中。如有问题,可搜索【码上遇见你】交流。
【Tomcat源码分析】从零开始理解 HTTP 请求处理 (第一篇)
|
2月前
|
Java 应用服务中间件 Maven
JavaWeb基础5——HTTP,Tomcat&Servlet
JavaWeb技术栈、HTTP、get和post区别、响应状态码、请求响应格数据式、IDEA使用Tomcat、报错解决、Servlet的体系结构、IDEA使用模板创建Servlet
JavaWeb基础5——HTTP,Tomcat&Servlet
|
3月前
|
存储 算法 数据安全/隐私保护
基于 HTTP Header 传输签名参数
基于 HTTP Header 传输签名参数
82 13
|
3月前
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
【Azure 云服务】Azure Cloud Service 为 Web Role(IIS Host)增加自定义字段 (把HTTP Request Header中的User-Agent字段增加到IIS输出日志中)
|
5月前
|
缓存 负载均衡 NoSQL
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
78 1
|
5月前
|
Java 应用服务中间件 API
Tomcat处理一个HTTP请求的执行流程的详细解析
Tomcat处理一个HTTP请求的执行流程的详细解析
158 4
|
5月前
|
Java 应用服务中间件 程序员
JavaWeb基础第四章(SpringBootWeb工程,HTTP协议与Web服务器-Tomcat)
JavaWeb基础第四章(SpringBootWeb工程,HTTP协议与Web服务器-Tomcat)
|
5月前
|
XML 应用服务中间件 Android开发
【已解决】eclipse导入项目出错 Server Tomcat v7.0 Server at localhost failed to start
【已解决】eclipse导入项目出错 Server Tomcat v7.0 Server at localhost failed to start
50 0
|
6月前
|
网络协议 Java 应用服务中间件
HTTP协议与Tomcat在IJ中配置
本文是对自己学习JavaWeb学习的笔记的总结,添加了一些自己的东西,然后进行一次复盘,并加深一下学习的理解和印象.其中内容主要包括对http协议的详细介绍,java常见服务器的初步介绍,以及IJ旧版和新版的tomcat服务器的配置图解教程