Использование Axis1 через https

1

как дела?

Проблема в том, что мы используем Axis1 для использования wsdl-based webservice, который отлично работает, когда URL-адрес, где расположен WSDL, использует обычное старое HTTP-соединение, но когда он использует защищенный SSL-протокол, он приносит ConnectionException, когда Axis1 пытается загрузить содержимое документа WSDL.

Даже прочитав комментарии к XMLUtils.class, разработчики Axis даже не уверены, что он будет работать с HTTPS, поскольку он читает в строке 810.

Есть ли способ решить это? Whe попытался установить сертификаты на компьютер, на... jre7/lib/security/cacerts и попытался доверять всем сертификатам, но проблема не устранена...

Заранее спасибо.

Редактировать:

Вы можете воспроизвести исключение с помощью этого кода:

InputSource source = new InputSource(urlWSDL);
DocumentBuilder db = DocumentBuilderFactoryImpl.newInstance().newDocumentBuilder();
Document doc = (Document) db.parse(source);

Исключение:

java.net.ConnectException: Connection timed out: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.connect(Unknown Source)
    at sun.security.ssl.BaseSSLSocketImpl.connect(Unknown Source)
    at sun.net.NetworkClient.doConnect(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.http.HttpClient.openServer(Unknown Source)
    at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source)
    at sun.net.www.protocol.https.HttpsClient.New(Unknown Source)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
    at java.net.URL.openStream(Unknown Source)
    at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
  • 0
    Да, это должно работать для https. Укажите дополнительную информацию об исключении, которое вы получаете.
  • 0
    Я пытался воспроизвести точку, где это происходит, и ... я понял! Я отредактирую вопрос.
Показать ещё 6 комментариев
Теги:
web-services
https
wsdl
axis

1 ответ

1

Проблема была прокси-сервера компании, поэтому я добавил:

System.setProperty("https.proxySet", "true");
System.setProperty("https.proxyHost", this.getConfiguracionProxy().getUrlProxy());
System.setProperty("https.proxyPort", this.getConfiguracionProxy().getPuertoProxy());

Для того, чтобы:

System.setProperty("http.proxySet", "true");
System.setProperty("http.proxyHost", this.getConfiguracionProxy().getUrlProxy());
System.setProperty("http.proxyPort", this.getConfiguracionProxy().getPuertoProxy());

Я нашел решение, глядя на Wireshark. Когда я получал файл в SoapUI или в веб-браузере, IP-адрес был иным, чем IP-адрес, используемый нашим приложением (настоящий IP-адрес). Тогда я понял, что я за прокси.

Я никогда не пользовался Wireshark... Я многому научился, что хорошо.

Это устанавливает в качестве свойства System хранимую конфигурацию прокси.

Спасибо всем.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню