【问题标题】:java.io.IOException: The issuer can not be found in the trusted CA listjava.io.IOException:在受信任的 CA 列表中找不到颁发者
【发布时间】:2012-01-06 19:45:22
【问题描述】:

我从 matlab 调用 java 函数时遇到此异常,该函数在 eclipse 中运行良好:

java.io.IOException:在受信任的 CA 列表中找不到颁发者。 异常发生在第二行:

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

我已经安装了 matlab 2011a。
我也把matlab的jvm改成了最新的jre6.4,但是还是报这个错误
我也尝试过更改 cacerts 文件,但没有成功。

有什么想法吗?不胜感激

【问题讨论】:

  • 您发布的不是有效的 MATLAB 代码。您如何从 MATLAB 中调用它?
  • 这与两步验证选项出现的错误不同,对吗?
  • 我已经找到解决方案,我会在 7 小时后发布,stackoverflow 不允许我现在发布它

标签: java http exception matlab https


【解决方案1】:

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

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

效果很好。

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

【讨论】:

    【解决方案2】:

    MATLAB 中的 callSoapService.m 在 32 位(找到发行者)和 64 位(未找到发行者)的 R2011b 之间表现不同。这可以通过替换来解决

    url = URL(端点);

    url = URL([], 端点, sun.net.www.protocol.https.Handler)

    感谢您发布此修复程序!

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 2012-03-19
      • 2014-03-17
      • 1970-01-01
      • 2011-03-10
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 2016-08-30
      相关资源
      最近更新 更多