解决javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;方案

好好的代码,由于导入了一个maven依赖之后,Tomcat就启动失败了,报出异常,当值项目崩溃.真是心碎了瞬间
错误信息如下:


Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-04-28 17:31:14.186 ERROR 12404 --- [           main] o.s.b.d.LoggingFailureAnalysisReporter   : 

***************************
APPLICATION FAILED TO START
***************************

Description:

An attempt was made to call a method that does not exist. The attempt was made from the following location:

    org.apache.catalina.authenticator.AuthenticatorBase.startInternal(AuthenticatorBase.java:1178)

The following method did not exist:

    javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;

The method's class, javax.servlet.ServletContext, is available from the following locations:

    jar:file:/D:/%e8%bd%af%e4%bb%b6/apache-tomcat-7.0.63/lib/servlet-api.jar!/javax/servlet/ServletContext.class
    jar:file:/D:/repository/org/apache/tomcat/embed/tomcat-embed-core/9.0.17/tomcat-embed-core-9.0.17.jar!/javax/servlet/ServletContext.class

It was loaded from the following location:

    file:/D:/%e8%bd%af%e4%bb%b6/apache-tomcat-7.0.63/lib/servlet-api.jar


Action:

Correct the classpath of your application so that it contains a single, compatible version of javax.servlet.ServletContext


Process finished with exit code 1

解决方案
在网上找了很多,大部分都是说,依赖冲突,让统一版本,这个其实不是这个错误,我们可以去jar包下找javax.servlet.ServletContext.getVirtualServerName(),这个方法,在我的机器上发现确实没有这个方法,所以可以认为是servlet-api.jar引起的,我们可以去下载更高版本的Tomcat,然后进入lib下,拷贝servlet-api.jar替换掉低版本的,然后重启应用就行了.
在这里插入图片描述
在上述路径中找ServletContext,然后查找里面是否含有getVirtualServerName()这个方法.

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值