1、在生成证书进行证书安装的时候报如下错误:
发现是在通过keytool生成密钥对的时候,公、私钥库的密码不一样(与私钥密码无关),设置为一样的以后,就可以了。
2、安装license.lic文件,通过Preferences类,windows系统中安装到注册表中,启动的时候再加载到内存中,当我们启动校验成功后,再次调用vertify()方法时,会先判断内存中是否校验成功,成功不再调用LicenseManager中的validate()方法对参数进行再次校验。所以再使用自定义参数的时候要注意。
3、报错java.util.prefs.WindowsPreferences <init> WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5. License file install failure! Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 文件提前结束。
4、报错:java.security.KeyStoreException: Uninitialized keystore
是因为在LicenseNotary类getKeyStore()方法中的keyStore.load(in, getKeyStoreParam().getStorePwd().toCharArray());验证没有通过,KeyStore中的initialized参数的值还是false,没有变为true
造成这个的原因有可能是
a、公钥库文件没有读取到,读取方法是 clazz.getResourceAsStream("");,文件要放到类路径下,路径加"/"
b、公钥库文件不对
5、Maven项目造成公钥库文件大小发生改变
(参考博客:https://blog.csdn.net/xiaoyi52/article/details/73741347)
问题是这样的:Java的密钥库文件放在/src/main/resources目录下,在Maven中编译的时候就会自动增长变大,导致java读取keystore文件异常,抛出证书文件格式不正确异常。原因为maven会自动替换文件中的占位符。解决办法是在pom文件中禁止其修改资源文件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>publicKeys.store</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>