У меня странная проблема с авторизованным соединением ssl. Сначала я создал класс Java, который подключается к внешнему серверу с авторизованным ssl. Я запустил этот класс в командной строке, он отлично работает, получает желаемые результаты с внешнего сервера. После того, как я использую этот класс на странице JSP. После перезагрузки моя страница JSP tomcat также дает мне желаемые результаты. Но после 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 (); <br>
out.println (fsb.TransHttpsAuth ("https://ext_server","prameters","GET"," jks_path "," password "));
%>
Версия Tomcat: 6.0.32
Java-версия: 1.6.0_21