Ошибка транспорта HTTP: java.net.ConnectException: истекло время ожидания соединения: подключиться в Soap ws клиенте - PullRequest
0 голосов
/ 18 октября 2018

В моем клиенте JAR, который я разработал, при попытке вызвать мыло с использованием jax-w я получил исключение тайм-аута соединения, я хочу знать, что может быть причинами, вызывающими это исключение.Я использую удаленный wsdl и сертификат сервера для https, который должен быть запущен в аргументах виртуальной машины.

   -Djavax.net.debug=all
   -Djavax.net.ssl.trustStore=link to my certifacte

Как я могу работать с этими аргументами?Добавив их в файл eclipse.ini?Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Добавление дополнительного ответа на устранение неполадок.Отличный способ проверить SSL-соединение.Источник: 4-й классный пример SSL Poke GitHUB

import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
import java.io.*;

/** Establish a SSL connection to a host and port, writes a byte and
 * prints the response. See
 * http://confluence.atlassian.com/display/JIRA/Connecting+to+SSL+services
 * 
 * JGlass: Code modified for SO to hard code the host and port
 * 
 */
public class SSLPoke {
    public static void main(String[] args) {

        //add the full FQDN to the host here
        String host = "google.com";
        //your port may be 443
        int port = 8443;

        try {
            SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
            SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket(host, port);

            InputStream in = sslsocket.getInputStream();
            OutputStream out = sslsocket.getOutputStream();

            // Write a test byte to get a reaction :)
            out.write(1);

            while (in.available() > 0) {
                System.out.print(in.read());
            }
            System.out.println("Successfully connected");

        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }
}

Если все работает правильно, вы получите «Успешно подключено»

0 голосов
/ 18 октября 2018

1.Выберите свой проект из панели Project Explorer, обычно слева Step 1 2.В меню «Выполнить», в зависимости от того, хотите ли вы просто запустить или отладить его, нажмите «Выполнить» или «Отладка» Step 2 3.На левой панели выберите «Приложение Java», щелкните правой кнопкой мыши и выберите «Создать» enter image description here 4.Поскольку вы уже выбрали свой проект, и он содержит класс «Main», по умолчанию в конфигурации Run / Debug «Name» будет указано имя класса.Если у вас есть несколько основных, вам, возможно, придется нажать кнопку «Поиск» или вручную ввести путь к пакету и имя класса Step 4 5.Введите свои аргументы в поле «Аргументы виртуальной машины», как показано Step 5 6.Нажмите «Применить» или «Применить и выполнить», если вы хотите запустить его немедленно

В некоторых заметках вам, вероятно, понадобится полный путь к хранилищу ключей, например:-Djavax.net.ssl.trustStore=C:\ADirectory\AnotherDirectory\FinalDirectoryThatContainsYourKeystore\TrustStore.jks-Djavax.net.debug=all - собирается включить МАССИВНОЕ количество отладки, которое, если вы не привыкли читать, может сбить с толку.Если соединение работает, удалите эту строку.Если соединение не работает - тогда полезна вся эта отладка.

Обновление : для дальнейшего устранения проблем с подключением HTTP, когда в основе его лежит запрос SOAP,временно удалите -Djavax.net.debug=all и добавьте следующее:-Dcom.sun.xml.ws.transport.http.client.HttpTransportPipe.dump=true-Dcom.sun.xml.ws.transport.http.HttpAdapter.dump=true-Dcom.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.dump=true-Dcom.sun.xml.internal.ws.transport.http.HttpAdapter.dump=trueЭто покажет вам заголовки HTTP, код ответа, содержимое тела запроса и ответа.Он также покажет URL, к которому вы пытаетесь подключиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...