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