我在 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。
請幫忙。
uj5u.com熱心網友回復:
不要自帶 servlet API jar。
您聲稱您正在使用實作 servlet 規范 3.1 的 Tomcat 8.5。帶上一個更新的 jar 不會神奇地讓它實作這個更新的規范。
如果您想要 4.0,請使用 Tomcat 9。并且不要帶上你自己的 servlet API。Tomcat 附帶的版本非常好。根據您構建的方式,您在構建時需要它的某個版本,但您不會將其打包以供運行時使用(例如,Maven 將其稱為“提供”,在 gradle 中我看到“編譯”或“compileOnly”)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/454102.html
