发生背景
开发深证银盛支付接口,需要用到公钥和私钥,密钥文件统一放在src/main/resources/key的某个目录下。在本地测试过程中出现:
1 | 报错:DerInputStream.getLength(): lengthTag=111, too big. |
错误定位
通过本地debug发现,在证书加载过程中出现这个问题,但是路径以及密钥都没有问题,于是在网上寻找解决方案,得出的为问题原因可能有两种。
- 原因1: 由于路径过长导致文件加载错误。(显然不是这个原因)
- 原因2: 由于maven在编译过程中修改了文件,导致文件失效,故而出现加载错误。
为了证实这种情况,我把maven打好的war中的证书文件替换掉,果然是这个原因。那证书为什么会被修改呢,原来就是maven-resources-plugin作怪。
解决方案
1 | <plugin> |