在今天摸索servlet的时候,报出了一个从来没见过的错误:
感觉也没改什么地方,一愁莫展,在逐一排查之后发现原来是在pom中少了一行
<scope>provided</scope>
因为依赖如果不加以限制的话,默认是compile,也就是表示 dependency 都可以在生命周期中使用。而且,这些dependencies 会传递到依赖的项目中。适用于所有阶段,会随着项目一起发布。如果这样的话,依赖的servlet-api就会和tomcat本身的servlet-api发生冲突。加上之后,就表示该包只在编译和测试的时候用,所以,当启动tomcat的时候,就不会冲突了。到此问题成功解决!可以安心的睡觉了🧐。