以前运行正常的项目,过了一段时间再运行时出问题,打开链接无反应,无法访问Tomcat,空白页面。
经检查发现,在Tomcat log中有报错:
NoSuchBeanDefinitionException: No bean named 'shiroFilter' is defined
看了网上很多资料,检查各种配置,确定无误。
相关资料如下:
项目“No bean named 'shiroFilter' is defined”错误处理 (github上down下来的项目无问题,本地项目报错)
关于shiro+springMVC整合使用的问题
其中说到的这个点,很有启发性:
错误原因:我把shiroFilter的配置写在了spring-mvc的文件中,这个文件是跟随servlet加载的,但是web.xml中filter比servlet先加载所以导致错误
解决办法:我将这部分配置单独拿出来放在applicationContext.xml文件中,然后放在web.xml的<context-param>标签中加载就可以了。
再三检查配置,无误。
最终解决方案
1、在IDEA,对整个项目重新编译。
2、删除Artifacts,重新创建。
3、重新加载到Tomcat中。
4、反复了好几次。同时,删除了Tomcat webapps目录下以前加载的项目,避免产生干扰。
5、莫名其妙解决了。
PS:在之前我有将项目直接加载到Tomcat的webapps目录中,但是还是同样的错误。如果还不行的话,我可能只有重新导入该项目了。