项目使用docker打包,由maven的插件切换谷歌jib,发现原来的项目会提示方法不存在,
java.lang.NoSuchMethodError: com.zcckj.common.utils.JsonUtils.toJsonString(Ljava/lang/Object;)Ljava/lang/String;
可是原来插件打包的项目,包括现在本地启动都是ok的!
排查方式:
使用-verbose:class查看类加载:
[Loaded com.zcckj.common.utils.JsonUtils from file:/app/libs/zc-component-common-1.1.9.jar]
发现这个类是从一个老项目的jar里面取的,而这个方法不是最新的,所以NoSuchMethodError
解决法案:
<exclusion> <artifactId>zc-component-common</artifactId> <groupId>com.zcckj.component</groupId> </exclusion>
重新启动,ok!