前言:
今天写完接口测试的时候,postman报错,错误码为500,提示NoSuchMethodException
,虽然明显是服务器错误,不过报错信息在Tomcat Localhost Log里面,定位到代码之后,发现是Jackson.toJsonString()
方法没有找到。
但是用@Test注解修饰的方法,调用上面找到的方法却没有问题,不过第一反应还是排查一下包是不是重复了
,结果并没有。
这就挺令人费解了,因为另一个项目的包目录与这个项目类似,使用起来并没有问题,百度也没有找到合适的方法。
想了半天,突然反应过来,测试时使用的包是直接从源代码的lib
目录获取的,而Tomcat运行时的lib
目录是从Tomcat输出目录
获取的。结果果然是这样,因为之前把这个项目的Jackson
包更新了,原有的包虽然在源代码删除,但是Tomcat编译时并不会删除原有输出目录的该包,所以就存在测试没问题,但是运行时报错
的奇怪现象
结论:删除原有输出目录,重新编译