STS 4.18.1部署组件找不到Java Build Path条目问题求助
解决STS 4.18.1中
HttpSessionEventPublisher类找不到的问题 这个异常核心是部署时spring-security-web包未被放入WEB-INF/lib目录,STS 4的界面逻辑和STS 3不同,旧操作路径失效是正常的,按以下步骤排查:
1. 先确认Maven依赖配置是否正确
打开项目pom.xml,检查spring-security-web的依赖配置:
<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>你的Spring Security版本号</version> <!-- 重点:scope必须为compile(默认就是compile,别改成provided/test) --> <scope>compile</scope> </dependency>
如果scope设为provided,Maven不会把这个包打包到WEB-INF/lib,而Tomcat本身不带这个类,必然报错。
2. 正确配置STS 4的Deployment Assembly
STS 4里Deployment Assembly的入口变了,按这个路径操作:
- 右键项目 → Properties(或直接按Alt+Enter)
- 在弹出窗口的搜索框输入「Deployment Assembly」,直接定位到配置页
- 点击「Add」按钮 → 选择「Java Build Path Entries」→ 选中「Maven Dependencies」→ 确认添加
如果找不到「Java Build Path Entries」选项,先右键项目 → Maven → Update Project,勾选「Force Update of Snapshots/Releases」,更新完成后再重试配置。
3. 清理+重新打包部署
- 右键项目 → Run As → Maven Clean,清空target目录
- 再执行Maven Install,重新生成部署文件
- 双击STS中的Tomcat服务器,进入配置页切换到「Deployment」标签,移除旧部署条目后重新添加项目
- 手动删除Tomcat安装目录下的
work、temp文件夹,以及webapps下的项目目录,再重启服务器
4. 验证依赖是否存在
打包完成后,去项目的target/项目名/WEB-INF/lib目录下,确认是否有spring-security-web-xxx.jar文件。如果没有,回到pom.xml检查依赖是否正确引入,或执行mvn dependency:tree查看依赖树,确认该包是否被排除。
内容的提问来源于stack exchange,提问作者Rocken
相关产品推荐
相关产品推荐

