Web.XML中URL-Mapping不被读取 修改路径后报404/500错误如何解决?
问题修复方案
一、404错误修复
- 清理服务器缓存:旧配置仍被服务器缓存导致请求仍指向
/calculate路径,以Tomcat为例,删除服务器目录下work/Catalina/localhost中对应项目的文件夹,将项目从服务器移除后重新部署再启动服务即可。 - 修正表单提交路径:你当前
index.html中<form action="ProfileSLT"的配置错误,action属性需要填你在web.xml中配置的<url-pattern>对应值,而非servlet名称,修改为:
如果你的项目配置了上下文路径(比如项目名是ProfileServlet),要补全路径为<form action="/profilesrvlt" method="post">/ProfileServlet/profilesrvlt。 - 补充页面跳转路径配置:页面内三个
<a>标签的href值profileLogIn、profileLogOut、myProfile目前没有对应的servlet映射规则,需要在web.xml中补充对应的<servlet-mapping>配置,否则点击后也会触发404错误。
二、500错误修复
该错误是编译用JDK版本和服务器运行用JDK版本不兼容导致的:
- 错误日志中
class file version 60.0对应JDK 16版本,version up to 52.0对应JDK 8版本,说明你编译Servlet类用的是JDK 16,但是运行服务器的JDK版本是8,低版本JDK无法加载高版本编译的类文件。 - 二选一执行以下操作即可修复:
- 降低项目编译版本:在IDE的项目设置中将Java源代码编译版本调整为1.8,全量重新编译项目后再部署。
- 升级服务器运行版本:将服务器使用的JDK版本升级到16及以上,和你编译项目用的JDK版本保持一致。
内容的提问来源于stack exchange,提问作者xsundevil
相关产品推荐
相关产品推荐

