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,坑爹啊。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构