NoSuchBeanDefinitionException: No bean named 'shiroFilter' is defined

以前运行正常的项目,过了一段时间再运行时出问题,打开链接无反应,无法访问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目录中,但是还是同样的错误。如果还不行的话,我可能只有重新导入该项目了。

原文地址:https://www.cnblogs.com/liuyp-ken/p/8668747.html