当前位置:首页 > java知识学习_java技术文章 > 正文

Tomcat报error filterstart错误问题汇总与解决方案

浏览99+

一、error错误问题概述

Java项目在启动和运行的时候,我们有时候经常会遇到Tomcat服务器软件报出error filterstart这样的错误,

并且出现这种错误的原因还不是很好找,因为控制台只打印两行提示信息并无法判断错误来源。

tomcat控制台错误提示信息

出现这种错误的原因多种多样,本篇文章本着可以惠泽于各大程序员的目标为大家总结出出现这种错误的所有原因所在,以及常规的解决方案。

在这里首先教大家一下查看该错误的详细信息的方法,虽然控制台只打印出了两行信息,但是我们可以通过tomcat的日志文件查看具体错误的详细信息,因为Tmocat的日志文件会实时地记录一切可记录的详细信息。

不管你是在生产环境的Linux系统上使用tomcat,还是在本地测试环境下的windows使用,我们都可以在tomcat的安装目录下找到一个结尾是log的日志文件,然后将该日志文件使用notepad++进行打开,查看里面的详细日志信息以便能够分析出该种错误产生的原因从而找到相应的解决办法,具体logs日志文件截图如下:

log日志文件信息截图

二、error filterstart错误汇总与解决方案

问题一:jdk版本不同步

很多情况下产生莫名其妙的errorfilterstarttomcat错误,有很大情况是因为版本儿不对应而导致的,我们在生产环境和本地环境都用的是tomcat相同的版本,所以就首先排除了tomcat不一致情况。

然后我们推敲的解决办法是在XML配置文件中将filter标签儿注释掉,编写命令行工具重新启动tomcat,然后根据报的错误,慢慢儿的一步一步看看问题的原因,下图移除掉filter标签后报的错误,详细截图如下:

web.xml配置文件移除filter标签后报错信息

经过我们多方的推敲不断的验证,发现原来是JDK的版本儿不统一导致的问题,我们在测试环境下的jdk版本儿和生产环境下的jdk版本儿不一致。

后来我们换成了跟tomcat兼容更高版本的JDK,然后重新启动项目能够正常启动,并且能够正常运行。

问题二:oracle数据库用户名密码超时限制

前段时间公司项目中,数据库由mysql转换成了Oracle,刚开始。项目正常运行,几个月之后tomcat就突然报了filterstart这个错误。

经过排查,原来是oracle11g新增了一个特性所致,oracle的用户名和密码如果在半年之内没有修改默认的缺省密码的话,该用户名就会被锁定不能使用。

oracle数据库为了安全起见是默认启用这个功能的,所以项目刚开始正常过一段时间报了这个错误,后来公司的那个DBA运维人员对密码进行了重置或修改,tomcat就启动正常了,具体oracle password has expired解决方法详见以下地址:https://blog.csdn.net/qiaqia609/article/details/46998311

问题三:缺失jar包或jar文件未成功加载

Tomcat缺失jar包的情况应该很少见,因为我们都是直接下载的压缩包,纯绿色版本直接解压就能使用,所以一般jar应该不会缺失。

有时候不知道是不是tomcat抽风所致,jar文件有时候在tomcat启动的时候,不能成功加载,会报.jar no load的错误提示,我们项目中就遇到过这种问题,具体详见下图。

jar文件不能加载的日志信息

针对上图中的这种异常情况,我们索性将tomcat中的jar包全部删除,又重新复制过来一份儿,然后重新打包部署编译,重启后正常运行。

以上就是我们汇总的该error错误最常出现的情况,还有一些其他的具体情况,也来给大家分享一下,比如说:项目中有个class文件没有成功部署的tomcat的目录下,也会产生这种filterstart问题,此时我们只需要重新编译一下,重新部署重启tomcat就可以了。

还有一种情况,tomcat全局配置文件Web.XML文件配置出现了错误,尤其是filter标签的书写配置顺序,实际上filter标签应该是servlet-mapping标签前一行声明,这两个标签是有先后顺序的。

责任声明:文章信息由IT教程屋小编精心整理总结编排而成,倾注了心血和汗水,转载时请遵循行业规范务必注明文章作者、来源及本页链接,谢谢合作!
本篇文章标题:Tomcat报error filterstart错误问题汇总与解决方案
本篇文章url地址:http://www.itjcw123.cn/2831.html