0

許可されたSSL接続に奇妙な問題があります。まず、許可されたsslを使用して外部サーバーに接続するJavaクラスを作成しました。私はこのクラスをコマンドラインで実行しましたが、正常に動作し、外部サーバーから目的の結果を取得します。このクラスをJSPページで使用した後。再起動後、TomcatJSPページでも目的の結果が得られます。しかし、10〜15回のリクエストの後、JSPページで次のエラーが発生します:「javax.net.ssl.SSLHandshakeException:致命的なアラートを受信しました:handshake_failure」。JSPページでこれ以上望ましい結果はありません。

これがJavaクラスコードのメソッドです。

public String TransHttpsAuth(String server, String param, String method, String jksPath, String jksPass)
{
    try
    {
        System.setProperty("javax.net.ssl.keyStoreType", "jks");
        System.setProperty("javax.net.ssl.keyStore", jksPath);
        System.setProperty("javax.net.ssl.keyStorePassword", jksPass);

        server=server+"/?"+ param;


        URL url = new URL(server);
        HttpsURLConnection httpurlconnection = (HttpsURLConnection)url.openConnection();

        httpurlconnection.setHostnameVerifier(new NullHostnameVerifier());
        httpurlconnection.setRequestMethod(method);
        httpurlconnection.setDoOutput(true);

        httpurlconnection.connect();
       InputStreamReader in = new InputStreamReader((InputStream) httpurlconnection.getContent());

       BufferedReader buff = new BufferedReader(in);
       String line = buff.readLine();
        StringBuffer text = new StringBuffer();
       while (line != null) {
           text.append(line + "\n");
           line = buff.readLine();
       }
       System.out.println(text.toString());
       httpurlconnection.disconnect();
        return text.toString();
    }
    catch(Exception exception)
    {
        return exception+"";
    }
}

JSPページからの呼び出し:<%fsb fsb = new fsb();
out.println(fsb.TransHttpsAuth( "https:// ext_server"、 "prameters"、 "GET"、 "jks_path"、 "password")); %>

Tomcatバージョン:6.0.32

Javaバージョン:1.6.0_21

4

1 に答える 1

1

Java を使用して接続するには、jre にサーバー証明書を追加し、Tomcat を再起動する必要があります。Web で InstallCert.java を探します。

于 2011-07-21T01:22:43.470 に答える