java.lang.NoSuchMethodError: javax.servlet.ServletContext.setSessionTimeout(I)V

阿布舍克·辛格

我在 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

java.lang.NoSuchMethodError:javax.servlet.ServletContext.getContextPath()Ljava / lang / String;

java.lang.NoClassDefFoundError:javax / servlet / ServletContext

java.lang.NoSuchMethodError:部署到货物中的Tomcat时,javax.servlet.ServletContext.getContextPath()Ljava / lang / String

java.lang.NoSuchMethodError:javax.servlet.ServletContext.getJspConfigDescriptor与jsp一起使用嵌入式码头

Java Spring MVC-java.lang.NoClassDefFoundError:javax / servlet / ServletContext

获取java.lang.ClassNotFoundException:JUnit中的javax.servlet.ServletContext

Spring Boot-java.lang.ClassNotFoundException:javax.servlet.ServletContext并且无法启动EmbeddedWebApplicationContext

java.lang.NoSuchMethodError:javax.servlet.http.Cookie.setHttpOnly(Z)V

Springboot tomcat嵌入式NoSuchMethodError:javax.servlet.ServletContext.addFilter

java.lang.NoSuchMethodError:javax.servlet.http.HttpServletRequest.isAsyncStarted()同时将Mockito与Junit一起使用

在运行Spring MVC应用程序时在Spring Boot中获取NoSuchMethodError:javax.servlet.ServletContext.addServlet

java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()Z

javax.servlet.ServletException:java.lang.NoClassDefFoundError:javax / servlet / jsp / jstl / core / ConditionalTagSupport

java.lang.NoClassDefFoundError:javax / servlet / jsp / jstl / core / ConditionalTagSupport

java.lang.NoClassDefFoundError:javax / servlet / http / HttpServlet

java.lang.NoClassDefFoundError:javax / servlet / http / HttpServletRequest

java.lang.ClassNotFoundException:javax.servlet.jsp.tagext.Tag

java.lang.ClassCastException:Servlet.Telnet无法转换为javax.servlet.Servlet

春季-Oauth2客户端服务器。NoSuchMethodError:在tomcat中运行时javax.servlet.ServletContext.getVirtualServerName()

从javax.servlet.ServletContext中找不到addListener方法

如何解决:javax.servlet.ServletException:java.lang.NoClassDefFoundError:javax / xml / ws / soap / SOAPFaultException

无法解析类型javax.servlet.ServletContext和javax.servlet.ServletException

java.lang.NoSuchMethodError:javax.persistence.EntityManager.setProperty(Ljava / lang / String; Ljava / lang / Ob ject;)V

嵌套的异常是java.lang.NoSuchMethodError:javax.ws.rs.ClientErrorException.validate

创建名称为'entityManagerFactory'的bean时出错:java.lang.NoSuchMethodError:javax.persistence.Table.indexes()

java.lang.NoSuchMethodError:javax.ws.rs.core.Application.getProperties()Ljava / util的/地图;

java.lang.NoSuchMethodError:javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax / persistence / ValidationMode;

java.lang.NoSuchMethodError:javax.persistence.Table.indexes()[Ljavax / persistence / Index;

春季:java.lang.NoSuchMethodError:javax.persistence.Table.indexes()[Ljavax / persistence / Index;