最佳答案
当你谷歌这个例外: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
,多个结果出现。但没有明确的解决方案,只有猜测。
当我尝试使用通过 SSL 打开连接时,问题出现了(至少在我的情况下)。它在我的 windows 机器上工作得很好,但是当我将它部署到 linux 机器上(安装了 sun 的 jre)时,它会因上述异常而失败。
问题是 JRE 的默认信任存储由于某种原因是空的(大小只有32字节,而在 windows 上是80kb)。
当我将 jre/lib/security/cacerts
文件从 windows 复制到 linux 时,它工作得很好。
问题是——为什么 linux jre 有一个空的信任存储?
注意,这种情况发生在使用 AMI Linux 的 Amazon EC2实例上,因此可能是由于一些 Amazon 策略(我认为 Java 是预先安装的,但我不确定)