Eclipse导出WAR前如何将JAR放入/WEB-INF/lib及解决JSTL 500错误
解决方案
1 解决Eclipse无法往WEB-INF/lib复制粘贴JAR的问题
- 优先使用Eclipse自动生成的规范目录,不要自建lib目录:右键项目 → 选择
Properties→ 进入Project Facets→ 勾选Dynamic Web Module,选择和你部署用的Tomcat版本匹配的版本(Tomcat9对应4.0,Tomcat10对应5.0),应用后项目会自动生成符合Java Web规范的WEB-INF/lib目录,可直接往该目录粘贴JAR。 - 如果已经是动态Web项目仍无法粘贴,先关闭Eclipse中所有该项目下打开的文件,解除文件占用后再尝试粘贴。
- 上述操作无效时,直接打开项目在本地磁盘的存储路径:
- 普通动态Web项目进入
WebContent/WEB-INF/lib - Maven结构的Web项目进入
src/main/webapp/WEB-INF/lib
直接把JAR文件复制到上述磁盘目录,回到Eclipse选中项目按F5刷新即可同步。
- 普通动态Web项目进入
2 解决JSTL标识无法解析的500错误
你遇到的报错本质是项目部署包中缺少JSTL的实现依赖,和Tomcat官方规范要求一致:
/WEB-INF/lib/ - 该目录存放应用所需的包含Java类文件及关联资源的JAR文件,例如第三方类库或JDBC驱动。
根据你使用的Tomcat版本选择对应操作即可:
- 若使用Tomcat9及更早版本(采用javax.*命名空间):将
jstl-1.2.jar放入上述WEB-INF/lib目录即可,无需额外修改web.xml配置。 - 若使用Tomcat10及以上版本(采用jakarta.*命名空间):除了放入jakarta版本的JSTL API和实现包外,还需要将JSP中引入的uri
http://java.sun.com/jsp/jstl/core替换为jakarta对应的官方uri。
3 导出WAR前的校验操作
打包前先确认依赖会被打进WAR包:右键项目 → 选择Properties → 进入Deployment Assembly,确认WEB-INF/lib下的JSTL包出现在部署列表中,若未出现点击Add → 选择Java Build Path Entries,把对应的JSTL包添加到部署列表即可。
导出WAR包后可直接用解压工具打开WAR,检查WEB-INF/lib目录下存在JSTL的JAR包后再上传到DigitalOcean的Tomcat部署即可解决报错。
内容的提问来源于stack exchange,提问作者addicted2coding2
相关产品推荐
相关产品推荐

