我在 tomcat 服务器启动时遇到了这个异常。
这里我javax.servlet-api-4.0.1.jar
在我的项目中使用,我也将它包含在运行时。但是当我将我的应用程序部署到 tomcat 8.5 中时,tomcat 会servlet-api
从其 /lib 文件夹中选择较旧的 jar。我知道这个方法setSessionTimeout
包含在 servlet 4.0 中,但是我将如何指导 tomcat 从我的项目的 WEB-INF/lib 文件夹而不是 tomcat/lib 中选择 jar。
我试图将 servlet-api-4.0 jar 放入 tomcat/lib 并删除旧 jar,然后项目正常启动。但这是正确的方法吗?无法从我的项目的 lib 目录中选择最新的 jar。
请帮忙。
不要自带 servlet API jar。
您声称您正在使用实现 servlet 规范 3.1 的 Tomcat 8.5。带上一个更新的 jar 不会神奇地让它实现这个更新的规范。
如果您想要 4.0,请使用 Tomcat 9。并且不要带上你自己的 servlet API。Tomcat 附带的版本非常好。根据您构建的方式,您在构建时需要它的某个版本,但您不会将其打包以供运行时使用(例如,Maven 将其称为“提供”,在 gradle 中我看到“编译”或“compileOnly”)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句