问题描述:在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,坑爹啊。