matlab java界面:java.io.IOException:在可信CA列表中找不到发行者?

时间:2012-01-05 10:22:45

标签: java exception matlab ca

我从matlab调用java函数。该函数在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 个答案:

答案 0 :(得分:1)

错误意味着在尝试建立HTTPS连接时,无法在运行Mathlab时使用的JVM使用的证书颁发机构列表中检索Google提供的证书颁发者。

首先应确定Mathlab在运行时确切使用哪个JVM,然后找到该JVM的证书颁发机构列表,通常在{jre_home} / lib / security / cacerts

然后你应该将Google证书颁发机构(我不知道他们使用谁)添加到该列表中(使用keytool:http://nl.globalsign.com/en/support/ssl+certificates/java/java+based+webserver/keytool+commands/

基本上你需要找到该权限的证书(* .crt文件)

您可以通过确保Mathlab使用更新的JVM(似乎您用来运行Eclipse的那个JVM确实拥有此证书)来绕过此问题。

答案 1 :(得分:0)

如果在matlab中使用java的URL类,则必须传递处理程序 我使用了这个构造函数:

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

它工作正常。

注意:sun.net.www.protocol.https.Handler仅在matlab中可用