Java-интерфейс Matlab: java.io.IOException: эмитент не найден в списке доверенных ЦС? - PullRequest
0 голосов
/ 05 января 2012

Я вызываю функцию Java из Matlab. Функция отлично работает в Eclipse, но когда я вызываю Matlab, я получаю следующее исключение:

java.io.IOException: The issuer can not be found in the trusted CA list.

Исключение возникает во второй строке:

URLConnection Conn = URL("https://www.google.com/accounts/ServiceLoginBoxAuth").openConnection();
Conn.getInputStream();

Почему это так? Любое решение?

Ответы [ 2 ]

1 голос
/ 05 января 2012

Ошибка означает, что при попытке установить соединение HTTPS не удалось найти издателя сертификата, предоставленного Google, в списке центров сертификации, который используется JVM, используемой при запуске Mathlab.

Вам следуетсначала точно определите, какая JVM используется Mathlab при запуске, а затем найдите список центров сертификации этой JVM, обычно в {jre_home} / lib / security / cacerts

Затем вы должны добавить центр сертификации Google (яне знаю, кого они используют) к этому списку (используя keytool: http://nl.globalsign.com/en/support/ssl+certificates/java/java+based+webserver/keytool+commands/)

В основном вам нужно найти сертификат этого органа (* .crt file)

Youможет обойти эту проблему, убедившись, что Mathlab использует более новую JVM (похоже, у той, что вы используете для запуска Eclipse, есть этот сертификат)

0 голосов
/ 11 января 2012

Если вы используете класс URL Java в Matlab, вам придется передать обработчик.
Я использовал этот конструктор:

URL(null, ServiceLoginBoxAuthUri, sun.net.www.protocol.https.Handler);  

и все работало нормально.

Примечание: sun.net.www.protocol.https.Handler доступен только в matlab

...