首页 > 代码库 > 报错!!!!!!!!!!!org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' is defined
报错!!!!!!!!!!!org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' is defined
报错!!!!!!!!!!!
因用maven项目不是很熟练,经常在Maven转Web项目(为什么要转web项目?因为要在tomcat中跑起来。maven项目好像是可以直接部署到tomcat的,或集成tomcat插件,还没尝试过)的时候会出现很奇怪的问题。下面的一个报错就是最近经常遇到的一个问题。因为每次遇到它时,都会花很长时间去排查,所以在此把它记录下来,以便后面再遇到此问题时,顺利过坑。报错如下:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named ‘springSessionRepositoryFilter‘ is defined
排查思路:
1、看是否添加了Web App Libary和Tomcat的依赖,依赖中是否有jar包。有时通过Build Path添加了Libraries,但在项目中仍然看不到,这是因为没有将资源挂载导致的,见2.
2、看Properties-->Deployment Assembly-->是否已将resources目录挂载。将"/resources"资源目录挂载到发布目录的“/”目录下
3、看Properties-->Project Facets中是否增加了Dynamic Web Module的支持。通常应包含“Dynamic Web Module”、“Java”、“JavaScript”以及其中的runtimes的配置。
4、右击项目,Build Path--> Configure Build Path...-->Source里面的included是否是All。如果是*.java,会导致配置文件不会被编译到classes目录中去。
最终找到上面报错的原因,springSessionRepositoryFilter是spring自己的类,在用这个类时,却找不到这个类。排除掉不缺少jar包并且配置文件也没问题的情况,猜测应该是项目设置的问题。最后查看了classes文件夹,发现里面只有.class文件,却没有其他的配置文件。于是猜测可能是设置的要编译的文件漏掉了配置文件,右击项目,Build Path--> Configure Build Path...-->Source里面的included果然是*.java,于是将其改为All之后,重启tomcat。问题解决了。
报错!!!!!!!!!!!org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSessionRepositoryFilter' is defined