编辑
2023-11-28
遇到的问题
00
请注意,本文编写于 492 天前,最后修改于 492 天前,其中某些信息可能已经过时。

目录

前提
排查
maven过滤文件

前提

由于业务需要,得对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打包的时候文件被修改了,导致解密错误

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 许可协议。转载请注明出处!