由于业务需要,得对pdf文件进行盖章上传,需要jks文件进行解密获取秘钥,demo将jks文件放在resource中可以正常解密,而将代码结合在主程序中就提示错误Invalid keystore format,前提是密码正常,jks文件正常有效
首先不通过Thread.currentThread().getContextClassLoader().getResource("test.jks")的方式获取文件,先将文件存在其他盘的绝对路径中,进行测试,文件可以正常加载解密
第二步将Thread.currentThread().getContextClassLoader().getResource("test.jks")方法获取路径,复制出来写死在配置项中,加载文件,提示错误Invalid keystore format。
从两个测试来看,首先从第一个测试来看jks文件是正常的,密码正确,第二个测试来看不是类加载的加载问题,路径正常,但是加载器的路径是target/classes路径下面的文件,这个路径的文件有问题,源文件8kb,打开target路径查看,文件是12kb,说明maven打包的时候文件被修改了,导致解密错误
在模块的pom文件中添加resources内容进行过滤文件,第一个是resource表示resources目录下都是资源文件需要打包,第二个resouce表示需要过滤stamp/* 目录下的文件,不要替换占位符
xml<project>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<excludes>
<exclude>stamp/*</exclude>
</excludes>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
本文作者:Weee
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!