奇怪的问题,我确认它正在读同一个文件。
不工作:
keystore = KeyStore.getInstance("PKCS12");
InputStream inputStream = ClassLoader.getSystemResourceAsStream("keystores/active.pfx");
keystore.load(inputStream, "the_password".toCharArray());
然而,确实有效:
keystore = KeyStore.getInstance("PKCS12");
InputStream inputStream = new FileInputStream(new File("src/main/resources/keystores/active.pfx"));
keystore.load(inputStream, "the_password".toCharArray());
我收到以下错误:
DER长度超过4个字节:111
输入流的改变,我无法弄清楚差异是什么。我对文件进行了三重检查,以确保它使用的是同一个文件。为什么Java对这些流的处理方式不同?如果我弄明白,我可能会弄清楚如何解决这个问题。
答案 0 :(得分:1)
这两种方法不是读取完全相同的文件。资源代码从JAR文件或类编译到的任何位置读取它。很明显,文件在构建过程中以某种方式被破坏了。