javax.servlet.ServletException: java.lang.NoClassDefFoundError:错误的解决

问题出现背景:

       前几天改一个bug,然而没有完整的源码,只能在服务器上将相关的class文件copy下来,反编译成java文件进行修改。修改完成再部署到服务器上(部署一定要备份),然而报错javax.servlet.ServletException: java.lang.NoClassDefFoundError:xxx。

 

问题分析解决:

       NoClassDefFoundError 这个错误是运行时找不到此类,我当时就就纳闷了,明明我已经给它部署上去了,class文件也在,文件路径也没问题,为啥就找不到了捏。然后我就痛苦的寻找问题所在,终于发现问题。

       因为我是copy的class文件到本地,反编译后的java文件放在本地项目的一个路径下,java中的package是本地项目的路径,不是服务器上路径,就算部署到正确的路径下,class文件中的package也不会改变,而服务器上其他文件没有改动,调用这个class的方法时就会找不到此类。

       因此我就把反编译的java文件在本地项目的路径与服务器上的项目路径保持一致,编译后再部署到服务器上就OK啦!

最后关于 NoClassDefFoundError 和 ClassNotFoundException 的区别参考https://www.cnblogs.com/xyhz0310/p/6803950.html

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值