运行登录JSP遇java.lang.ClassNotFoundException: org.springframework.ui.context.ThemeSource错误
解决Spring中
java.lang.ClassNotFoundException: org.springframework.ui.context.ThemeSource错误 刚接触Spring就碰到这种依赖问题确实容易慌,别担心,这个错误其实很常见,我来一步步帮你排查解决:
错误根源
org.springframework.ui.context.ThemeSource这个类属于Spring的context-support模块,出现找不到类的问题,90%以上是你的项目里没引入这个依赖包——毕竟你提到已经配置了Servlet和Bean的依赖,但这个模块是单独的,默认可能没包含进去。
具体解决方案
1. 添加Spring Context-Support依赖
根据你用的构建工具,对应添加依赖:
- 如果是Maven,在
pom.xml里插入这段配置:
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>你的Spring版本号</version> <!-- 比如和你其他Spring依赖一致的5.3.20 --> </dependency>
- 如果是Gradle,在
build.gradle里添加:
implementation 'org.springframework:spring-context-support:你的Spring版本号'
⚠️ 注意版本号要和你项目中其他Spring依赖完全一致,避免版本冲突导致新问题。
2. 确认依赖正确导入
添加完依赖后,刷新你的构建工具:
- Maven的话点击IDE里的刷新按钮,或者执行
mvn clean install; - Gradle执行
gradle build --refresh-dependencies。
然后检查项目的依赖库中是否出现spring-context-support-xxx.jar,确保它被正确下载并引入。
3. 检查Web部署配置(针对Web项目)
如果是部署到Tomcat这类容器的Web项目,还要确认部署包(war包)里包含这个jar:
- 在IDE的Deployment Assembly配置里,检查是否把这个依赖加入到部署列表中;
- 手动解压war包的话,看看
WEB-INF/lib目录里有没有spring-context-support的jar文件。
补充:关于你的JSP代码
从你贴的login.jsp片段看,<%@include file="include.jsp"%>大概率引入了和Spring主题渲染相关的内容,这会触发Spring去加载ThemeSource类,这也是为什么之前配置Servlet和Bean时没报错,运行JSP才出现问题的原因。
内容的提问来源于stack exchange,提问作者Show-me-the-code
相关产品推荐
相关产品推荐

