我的环境
- Java 17
- maven 3
- Tomcat 10.0.20
BUG 的产生
因为最近在尝试自己通过 servlet 实现一个简易的 SpringMvc 框架,所以遇到了这个访问 404 的问题。
首先我可以确定我的项目时毫无问题的(毕竟直接用 maven 通过模板创建的),因此我肯定这是项目配置的问题。
本来我使用的是这个依赖,想必大家第一次接触 servlet 用的也是这个版本的。但也就是这个 servlet 导致了问题。
1 | <dependency> |
随后我找到了官方文档,原来是 tomcat 和 Java 的版本以及依赖是绑定的啊,那好办,我直接换一个 servlet 的版本就成。
于是乎,我熟练地在 maven repository 中找到了 servlet-api 的依赖。不对劲,按照官方的对应表应该是有个 5.0 版本的依赖啊。这怎么最高才 3.0 呢?仔细一看,发现这个依赖已经被官方迁移到 javax.servlet-api 里了。
顺势一点,我来到了 javax.servlet-api 的页面,嗯!??Σ( ° △ °|||)︴这个怎么也没有 5.0 啊。我就又无奈的接着去翻官方文档了。
最终我发现了,这丫的因为版权问题改名叫 jakarta.servlet 了…
详情这里就不再多说了,感兴趣的可以看看下面的这篇文章。
https://www.javacodegeeks.com/2019/05/jakarta-ee-without-javax-world-wont-end-time-either.html
问题解决
将依赖更新到对应版本后 servlet 访问 404 的问起终于是解决了。
1 | <dependency> |
https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-servlet-api