2012-01-05 5 views
0

私はmatlabからjava関数を呼び出しています。関数は日食で罰金を実行しているが、私はMathWorks社のMATLABから呼び出すときに、私はこの例外を取得:Matlab java interface:java.io.IOException:発行者が信頼できるCAリストに見つかりませんでしたか?

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(); 

なぜそれはそうでしょうか?どんな解決策ですか?

答えて

0

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

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

をし、それがうまく働きました。

注:sun.net.www.protocol.https.Handlerは、MATLABでのみ利用可能です

1

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

あなたはまず、あなたは、Googleの認証局を追加する必要があり、通常は{JRE_HOME}/libに/セキュリティ/ cacertsにして、

をそのJVMの認証局のリストを見つけ、その後、実行しているときにJVMがMathlabで使用されているかを正確に特定する必要があります

は基本的にあなたがその権限(* .CRTファイル)の証明書を見つける必要があるあなたがすることでこの問題を回避することが

:(http://nl.globalsign.com/en/support/ssl+certificates/java/java+based+webserver/keytool+commands/ keytoolを使用して)そのリストに(私は彼らが使用して誰かわかりません) Mathlabが最近のJVMを使用していることを確認します(Eclipseを実行するために使用するものと思われます

+0

おかげで、私はそれを試してみて、あなたは私がのcacertsは、最新のjre6.3にファイルを置き換えてきた –

+0

を知ってもらおうしかし、それは動作していません。さらに、matlabのjreをjre6.3に変更しましたが、それでも動作しません。 –

+0

私のポストの最初の部分が適用される必要があります:アクセスしているGoogleのURLで使用されている証明書を見つけます(あなたのブラウザのプロパティを使ってアクセスできます)。 –

関連する問題