报错:java.lang.NoSuchMethodError: org.json.JSONObject.stringToValue(Ljava/lang/String;)Ljava/lang/Object;
自己的接口日志没有报出这个错误,因为调用的该方法,没有向上抛出异常。只能在tomcat的wrapper日志找到该问题。
通过自己百度发现是版本冲突问题。
经过自己跟前辈的咨询,报错的
分析:org.json.JSONObject.stringToValue,明确了这个路径下的这个方法,和自己在项目当中的调用是不适配的。于是可以证明,在项目依赖的包中,有引入相同路径的相同方法名称(有两个包引入org.json.JSONObject类下的stringToValue)。找到后排除掉其中不适配的就可以了。
以下按照这个思路去查找
搜查步骤
1、项目中模糊搜索,找到可能出现引入该类的方法。
(1)找到其中一个存在 org.json.JSONObject类的包,
**结论:**以上两个图是都存在 org.json.JSONObject这个路径的,但是其中第一张图是不存在保存所说的 'stringToValue’这个方法的。所以在本地运行好使,应该是因为import的是第二个包下的路径;在服务器上运行不好使,是imprt第一个包下的路径,因而报找不到的问题。
解决方式:将路径冲突的包从maven当中排出去,此时服务器上的运行也不报冲突了