Когда вы google для этого исключения: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
, появляется несколько результатов. Однако окончательного решения нет, только догадки.
Проблема возникает (по крайней мере, в моем случае), когда я пытаюсь использовать открытое соединение через SSL. Он отлично работает на моем компьютере с Windows, но когда я его развертываю на машине linux (при установке sun jre), он не справляется с вышеуказанным исключением.
Проблема заключается в том, что по умолчанию доверительная сеть JRE по умолчанию пуста (размер составляет всего 32 байта, тогда как на окнах - 80 КБ).
Когда я скопировал мой файл jre/lib/security/cacerts
из окон в linux, он отлично работал.
Вопрос в том, почему linux jre имеет пустой хранилище доверия?
Обратите внимание, что это происходит на экземпляре Amazon EC2, с AMI linux, поэтому это может быть связано с некоторыми политиками amazon (я думаю, что Java был предварительно установлен, но я не уверен)