本地执行正常,war包放到服务器上执行报错没有此方法

报错:java.lang.NoSuchMethodError: org.json.JSONObject.stringToValue(Ljava/lang/String;)Ljava/lang/Object;
wrapper日志报错
自己的接口日志没有报出这个错误,因为调用的该方法,没有向上抛出异常。只能在tomcat的wrapper日志找到该问题。

通过自己百度发现是版本冲突问题。
经过自己跟前辈的咨询,报错的
分析:org.json.JSONObject.stringToValue,明确了这个路径下的这个方法,和自己在项目当中的调用是不适配的。于是可以证明,在项目依赖的包中,有引入相同路径的相同方法名称(有两个包引入org.json.JSONObject类下的stringToValue)。找到后排除掉其中不适配的就可以了。
以下按照这个思路去查找

搜查步骤
1、项目中模糊搜索,找到可能出现引入该类的方法。
在这里插入图片描述
(1)找到其中一个存在 org.json.JSONObject类的包,
在这里插入图片描述
在这里插入图片描述
**结论:**以上两个图是都存在 org.json.JSONObject这个路径的,但是其中第一张图是不存在保存所说的 'stringToValue’这个方法的。所以在本地运行好使,应该是因为import的是第二个包下的路径;在服务器上运行不好使,是imprt第一个包下的路径,因而报找不到的问题。

解决方式:将路径冲突的包从maven当中排出去,此时服务器上的运行也不报冲突了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值