1.记录生产的一次报错
生产发现 一个controller的接口返回报错
只是BaseResp基类返回报错,业务逻辑触发正常
查询日志
java.lang.NoSuchMethodError: com.xxx.xxxx.common.vo.BaseResp.<init>(ILjava/lang/String;Ljava/lang/Object;)V
这次上线直接把打好的类文件(。class)文件替换到线上jar包中。
出错行数代码:
return new BaseResp<>(0, null, result);
分析
1.BaseResp中构造方法是没有改过的,但是 BaseResp 加入其他方法
2.测试环境测试是好的
解决
1.我们采取更改为无参方法,set值进入
2.把BaseResp.class文件更换到jar包
总结
还是不要采用jar中替换class文件的方式替换,感觉只要有关联的文件都需要替换,排查非常浪费时间