DerInputStream.getLength(): lengthTag=111, too big maven插件惹的祸
调用微信退款接口异常
使用微信退款接口时,加载证书报错:
DerInputStream.getLength(): lengthTag=111, too big。
经过问题排查发现:
证书文件放在项目的src/main/resources路径下
由于使用了maven插件maven-resources-plugin
该插件会修改管理目录下的资源文件,造成证书文件发生变更,使用的使用就造成了如题的错误。
处理方案:
1 将证书移出到项目外边,不在maven资源插件的管理目录下。
2 修改插件配置,设置证书文件例外
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.p12</include>
</includes>
**<filtering>false</filtering>**
</resource>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<!-- 过滤后缀为pem、pfx的证书文件 -->
<nonFilteredFileExtensions>
<nonFilteredFileExtension>pem</nonFilteredFileExtension>
<nonFilteredFileExtension>pfx</nonFilteredFileExtension>
<nonFilteredFileExtension>p12</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>