tomcat正常运行一段时间后,突然访问不了项目了

Easter79
• 阅读 822

前言

我将项目部署在tomcat服务器上,本来都是好好的,输入网站地址就能访问;但是第二天一早去就会发现网站访问提示404,文件无法找到;我就很懵了。

排查

  • 1、我是用的是chrome浏览器,所以尝试了下其余浏览器看是否能够访问;以外的发现IE竟然可以访问。说明问题不在代码
  • 2、找到tomcat的安装目录,查看错误日志;在logs文件夹下即可找到类似 catalina.2019-09-22.log 的文件 tomcat正常运行一段时间后,突然访问不了项目了 打开文件夹后就看到了报错信息: tomcat正常运行一段时间后,突然访问不了项目了
  • 3、然后靠万能的百度就分分钟解决了

报错信息:

22-Sep-2019 18:15:22.184 INFO [http-nio-8080-exec-7] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level. java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:426) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:687) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)

解决方法:

在Tomcat的server.xml中找到

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

这个标签,添加maxHttpHeaderSize="9999"这一属性。

    <Connector executor="tomcatThreadPool"
           maxHttpHeaderSize="9999" 
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

过了几天依然出现了这个错误。

突然发现自己的服务器是开了两个tomcat,虽然端口号各不相同,但有没可能是这个造成的原因呢?

然后我关闭其中一个,现在过去大半个月了,依旧正常运行。

总结

查看logs目录下的catalina.out日志文件真的很重要,这是可以看到报错信息的,能让你快速定位问题!

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
芝士年糕 芝士年糕
2年前
Nginx 报404问题,如何解决
近日在使用服务器部署项目时,出现了一些问题,如图正常的登录界面是可以访问的,但是在登录之后访问之后的地址会报404错误,于是去查看是否配置有错误,但是查看之后发现,nginx.conf与config.js两个配置文件的ip和端口都是没有错误的这个项目部署过好多次,没有出现过这样的错误。这是原版没动过的解压缩后的nginx.conf的源文件圈起来的地方是应该按
Wesley13 Wesley13
3年前
java日常工作错误总结
1.将一个新的项目拷贝到另一台电脑上,放入tomcat中运行找不到路径,报错404、重新创建一个servlet运行就可以正常访问到。2.但上传的文件过大时上传文件会报404错误把<propertyname"maxUploadSize"value"50000000"/限制该大些就能正常上传文件<beanid"multipartReso
菜园前端 菜园前端
1年前
DOM 文档对象模型使用教程来喽!
原文链接:HTML模板html我是网站标题访问节点通过id访问指定节点getElementByIdjavascriptvarnodedocument.getElementById('box')通过name访问指定节点getElementsByNamejav
Stella981 Stella981
3年前
CentOS7中tomcat端口设置
有时候linux下的tomcat其他机器无法访问,比如主机无法访问linux虚拟机的tomcat,这是因为tocat的端口,linux没有对外开放,所以只能localhost访问,但是别的机器访问不了;解决方法如下:第一步:通过systemctlstatusfirewalld查看firewalld状态,若发现当前是dead状态,即防火墙未开启。!
Stella981 Stella981
3年前
Nginx配置实验反向代理
l 实验要求浏览器访问8083.mine.com:8081地址,(Nginx端口是8081)通过Nginx服务器反向代理监听请求,将请求转发到tomcat服务器上,实现真正内容的访问。l 实验环境一台已安装Nginx(port:8081),tomcat8.5.39(port:8083)的CentOS服务
Stella981 Stella981
3年前
Eclipse中将Java项目转换成Web项目的方法
前言:  用Eclipse开发项目的时候,把一个Web项目导入到Eclipse里会变成了一个java工程,将无法在Tomcat中进行部署运行。  方法:  1.找到.project文件,找到里面的<natures标签,查看是否有下面的代码,没有则复制进去。  Xml代码1.<natureorg.eclipse.ws
Stella981 Stella981
3年前
Linux日志安全分析技巧
0x00前言我正在整理一个项目,收集和汇总了一些应急响应案例(不断更新中)。GitHub地址:https://github.com/Bypass007/EmergencyResponseNotes本文主要介绍Linux日志分析的技巧,更多详细信息请访问Github地址,欢迎Star。0x01日志简介Lin
娜娜 娜娜
9个月前
ChatGPT消息发不出去?ChatGPT没反应?那是这个步骤少做了!
前因今天在工作的过程中,我正准备登陆咨询一些关于文案的问题,但突然发现自己无法发送消息了。“消息发送故障,但历史对话仍可查看。为了解决问题,您可以先访问OpenAI官方网站:https://status.openai.com/。这个网站提供了OpenAI系
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k