1、證書路徑問題linux
window下能夠直接填寫物理路徑apache
linux:能夠將文件放置在classpath下。使用一下獲取api
String keyClasspath = Thread.currentThread().getContextClassLoader().getResource("/").getPath() + "cert/apiclient_cert.p12";
2、打包證書DerInputStream.getLength(): lengthTag=111, too big.服務器
微信支付接口須要用到公鑰和私鑰,密鑰文件統一放到項目src/main/resources的某個目錄下,而後打包部署到測試環境。微信
報錯:DerInputStream.getLength(): lengthTag=111, too big.maven
緣由:程序編譯打包時候maven-resources-plugin,證書文件變化,密鑰文件服務器上的文件md5值,與本地MD5值不一致測試
解決方案:【打包時候排除證書文件編譯】微信支付
<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>