DerInputStream.getLength(): lengthTag=111, too big.
阿新 • • 發佈:2018-11-14
先摘抄網上的一部分,一定要看完哦!
開發微信支付介面需要用到公鑰和私鑰,金鑰檔案統一放到專案src/main/resources的某個目錄下,然後打包部署到測試環境的jboss,發起支付或退款,失敗了。
報錯:DerInputStream.getLength(): lengthTag=111, too big.
如果把證書單獨放到某個檔案目錄下是木有問題的,猜測是否是路徑太長導致的呢?
在本地測試排除了這個可能性,然後再網上找資料發現該異常時由於證書載入不正確導致,那就說明證書被修改過。
為了證實這種情況,我把maven打好的war中的證書檔案替換掉,果然是這個原因。那證書為什麼會被修改呢,原來就是maven-resources-plugin作怪。
<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>