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

前言

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

排查

  • 1、我是用的是chrome浏览器,所以尝试了下其余浏览器看是否能够访问;以外的发现IE竟然可以访问。说明问题不在代码
  • 2、找到tomcat的安装目录,查看错误日志;在logs文件夹下即可找到类似 catalina.2019-09-22.log 的文件 打开文件夹后就看到了报错信息:
  • 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"这一属性。

1 <Connector executor="tomcatThreadPool" 2 maxHttpHeaderSize="9999" 3 port="8080" protocol="HTTP/1.1" 4 connectionTimeout="20000" 5 redirectPort="8443" />

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

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

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

总结

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

点赞
收藏

评论区

加载中...

相关推荐

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

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

Nginx 报404问题,如何解决

近日在使用服务器部署项目时,出现了一些问题,如图正常的登录界面是可以访问的,但是在登录之后访问之后的地址会报404错误,于是去查看是否配置有错误,但是查看之后发现,nginx.conf与config.js两个配置文件的ip和端口都是没有错误的这个项目部署过好多次,没有出现过这样的错误。这是原版没动过的解压缩后的nginx.conf的源文件圈起来的地方是应该按

DOM 文档对象模型使用教程来喽!

原文链接:HTML模板html我是网站标题访问节点通过id访问指定节点getElementByIdjavascriptvarnodedocument.getElementById('box')通过name访问指定节点getElementsByNamejav

java日常工作错误总结

1.将一个新的项目拷贝到另一台电脑上,放入tomcat中运行找不到路径,报错404、重新创建一个servlet运行就可以正常访问到。2.但上传的文件过大时上传文件会报404错误把<propertyname"maxUploadSize"value"50000000"/限制该大些就能正常上传文件<beanid"multipartReso