我在Tomcat 8部署服务时遇到问题,出现以下错误:
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String; at org.apache.tomcat.websocket.server.WsServerContainer.(WsServerContainer.java:149) at org.apache.tomcat.websocket.server.WsSci.init(WsSci.java:131) at org.apache.tomcat.websocket.server.WsSci.onStartup(WsSci.java:47) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5244) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) ... 10 more
getVirtualServerName
方法是在Servlet 3.1中引入的。从我的 jar中提取MANIFEST.MF
后,我得到了以下详细信息:
Specification-Title: Java API for Servlets
Specification-Version: 3.1
Specification-Vendor: Sun Microsystems, Inc.
Implementation-Title: javax.servlet
这意味着它拥有3.1版本。那么是否还有其他原因导致此错误?请帮忙。
<tomcat.version>
xxxx</tomcat.version>
以适用于Tomcat 8...? - MrSimpleMind<tomcat.version>
。所以如果我不声明它,它会默认使用什么? - Rahman