0

matlabからjava関数を呼び出しています。関数はEclipseで正常に実行されていますが、matlabから呼び出すと、次の例外が発生します。

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

例外は2行目で発生します。

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

なんでそうなの?解決策はありますか?

4

2 に答える 2

1

このエラーは、HTTPS接続を確立しようとしているときに、Mathlabの実行時に使用されるJVMが使用する認証局リストでGoogleから提供された証明書の発行者を取得できなかったことを意味します。

最初に、実行時にMathlabが使用するJVMを正確に特定してから、通常は{jre_home} / lib / security/cacertsでそのJVMの認証局リストを見つける必要があります。

次に、Google認証局(誰を使用しているかわかりません)をそのリストに追加する必要があります(keytoolを使用:http://nl.globalsign.com/en/support/ssl+certificates/java/java+based+webserver / keytool + commands /

基本的に、その機関の証明書(* .crtファイル)を見つける必要があります

Mathlabが最新のJVMを使用していることを確認することで、この問題を回避できます(Eclipseの実行に使用するJVMにはこの証明書があるようです)

于 2012-01-05T10:30:41.173 に答える
0

matlabでJavaのURLクラスを使用する場合は、ハンドラーを渡す必要があります。
私はこのコンストラクターを使用しました:

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

そしてそれはうまくいきました。

注:sun.net.www.protocol.https.Handlerはmatlabでのみ使用できます

于 2012-01-11T13:22:58.923 に答える