Исключение SSLException: нераспознанное сообщение SSL, ошибка подключения открытым текстом в приложении AXIS Java

#java #web-services #ssl #axis

#java #веб-службы #ssl #axis

Вопрос:

У меня есть Java-приложение, которое использует Axis для получения данных из веб-службы. доступ к веб-службе осуществляется через HTTPS. Он отлично работает на моем локальном компьютере, но клиент использует прокси. Я добавил настройку для прокси:

 System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", host);
System.getProperties().put( "proxyPort", port);
Authenticator.setDefault(new Authenticator() {
    protected PasswordAuthentication getPasswordAuthentication() {
        return new PasswordAuthentication(username,
            password.toCharArray());
    }
});
  

но клиенты получают исключение:

 faultDetail: 
    {http://xml.apache.org/axis/}stackTrace:javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source)
    at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    ...
  

Кто-нибудь может здесь помочь?

Ответ №1:

  System.getProperties().put( "proxySet", "true" );
  

Это ничего не дает. Удалить. В JDK такого свойства нет.

  System.getProperties().put( "proxyHost", host);
 System.getProperties().put( "proxyPort", port);
  

Если вы используете SSL, это должны быть https.proxyHost / https.proxyPort соответственно. Для текстовых подключений используется http.proxyHost / http.proxyPort.

Комментарии:

1. На самом деле мы пытались использовать https.proxyHost / https.proxyPort, та же ошибка. Кстати, мы используем java 1.4

Ответ №2:

Не удалось решить эту проблему. Наше приложение было переписано с использованием обычных HTTP POST-запросов (с Apache HttpClient 3.0), то есть без Axis.