背景
最近刚好需要对接京东本地生活,部分接口和数据可以直接对接京东的开放平台,有一些敏感数据需要在京东云鼎上面入驻,然后在鼎内做一些业务逻辑,然后再将数据做一个转发,然后踩了一个坑就是京东SDK打包时未打包依赖的坑。
场景
对于这个获取敏感数据接口时,我们发现接口调不通后,我们也做了排查,根据下面情况进行了处理:
- 首先增加日志,在关键位置打日志
- 上一步通过日志大致已经定位到代码点,然后增加了try catch
- 然后我们发现也没用,因为没有catch到异常,然后继续增加日志
问题原因及解决
原因是我用的是1.0.1的SDK版本,然后对于jackson-mapper-asl.jar这个包依赖是没有的,然后编译时是不会报错,因为是源码级别的,然后运行时呢,就报了 NoClassDefFoundError,是Error级别的错误,我们catch的是异常,然后没有打印出来,就算没有捕获到,但是云鼎没有打印出来,也没有发现,后面我本地跑才发现这个问题
解决
java
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
这个问题解决不难,就是难发现呀,不踩这个坑都不知道,太坑人了........