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

问题描述:在eclipse3.7中启动tomcat6时一直出现这个错误,

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

              网上搜了好久,众说纷纭,最终才找到解决办法,参照此方法我的问题解决了。

     

解决方案:找到jdk安装目录进入jre\lib\ext,看是否有servlet-api.jar(我的没有),如果没有将tomcat中的servlet-api.jar复制到jre\lib\ext

              重启tomcat错误就没有出现。

              如果你的jre\lib\ext下有这个架包,还是有错,可以尝试用tomcat中的servlet-api.jar替换jre\lib\ext下的servlet-api.jar,重启tomcat

2020年2月14日更新:

启动 dubbo项目的时候报错:

Exception in thread "NettyClientWorkerThread_4" java.lang.NoClassDefFoundError: com/aliyun/openservices/shade/io/netty/util/concurrent/DefaultPromise$1
at com.aliyun.openservices.shade.io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:435)
at com.aliyun.openservices.shade.io.netty.util.concurrent.DefaultPromise.setSuccess(DefaultPromise.java:102)
at com.aliyun.openservices.shade.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:179)
at java.lang.Thread.run(Thread.java:745)

一看是java.lang.NoClassDefFoundError,自然而然以为是类加载过程中找不到这个类的问题。

继而从jar包查起,后来发现是在 ons-client-1.8.0.Final.jar中。

 

com/aliyun/openservices/ons-client/1.8.0.Final

ons-client-1.8.0.Final.jar

 

实际项目 执行mvn package 之后,有这个jar,为啥还会出错呢。继续翻日志,发现最上面出现了依赖加载出问题了。

原来是 dubbo:reference 配置的有问题, group="@dubbo.someservice.group@" 

这里的dubbo reference 的group中占位符对应的配置忘记加载properties配置文件中了。

明明是依赖的问题,却报错java.lang.NoClassDefFoundError,坑爹啊。

原文地址:https://www.cnblogs.com/demingblog/p/2802578.html