«java.net.SocketTimeoutException: время ожидания соединения истекло» Мой клиент не может вызвать веб-службуJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 «java.net.SocketTimeoutException: время ожидания соединения истекло» Мой клиент не может вызвать веб-службу

Сообщение Гость »


Я пытаюсь вызвать веб-службу и отправить ей XML-данные. Компания, размещающая веб-службу, предоставила мне сертификаты, и я импортировал их в свое хранилище ключей, а также установил хранилище ключей в свой код.

Компания сообщает, что мои IP-адреса занесены в белый список, а их сервер запущен и работает, но я продолжаю получать такое исключение:

17:18:00,255 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) java.net.SocketTimeoutException: время ожидания соединения истекло 17:18:00,255 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в java.net.PlainSocketImpl.socketConnect (собственный метод) 17:18:00,256 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 17:18:00,256 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 17:18:00,257 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 17:18:00,257 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 17:18:00,258 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в java.net.Socket.connect(Socket.java:579) 17:18:00,258 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618) 17:18:00,258 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в sun.net.NetworkClient.doConnect(NetworkClient.java:175) 17:18:00,259 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) на sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 17:18:00259 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) на sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 17:18:00,259 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:275) 17:18:00,260 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) на sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:371) 17:18:00,260 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) на sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) 17:18:00260 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) на sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932) 17:18:00,261 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) на sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) 17:18:00,261 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300) 17:18:00,261 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468) 17:18:00,262 ОШИБКА [stderr] (DefaultQuartzScheduler_Worker-1) в sun.net.www.protocol.https.HttpsURLConnectionIm ... sponseCode(HttpsURLConnectionImpl.java: Вот часть кода, который я использовал:

//Начать соединение URL-адрес URL = новый URL-адрес (адрес); HttpURLConnection con = (HttpURLConnection) url.openConnection(); //Установим свойства HTTP-заголовка con.setConnectTimeout(60000); con.setRequestMethod("POST"); con.setUseCaches(истина); con.setRequestProperty("Тип контента", "текст/xml"); con.setRequestProperty("Content-Length", Integer.toString(xml.length())); con.setRequestProperty("SOAPAction", адрес); con.setDoOutput(истина); con.setDoInput(истина); userPass = имя пользователя + ":" + пароль; byte[] encodeBytes = Base64.encodeBase64(userPass.getBytes()); Кодирование строки = новая строка (encodeBytes); con.setRequestProperty("Авторизация", "Базовый " + кодировать); //Настраиваем HTTPS HttpsURLConnection httpsConnection = (HttpsURLConnection) con; пытаться { Контекст SSLContext = SSLContext.getInstance("TLS"); KeyManagerFactory kmFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm()); KeyStore kStore = KeyStore.getInstance("JKS"); FileInputStream fis = новый FileInputStream(новый файл(ERPGetProperty.erpGetProperty("pathToKeyStore"))); TrustManagerFactory tmFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); пытаться { kStore.load(fis, keyStorePass); kmFactory.init(kStore, keyStorePass); tmFactory.init(kStore); context.init(kmFactory.getKeyManagers(), tmFactory.getTrustManagers(), new SecureRandom()); httpsConnection.setSSLSocketFactory(context.getSocketFactory()); httpsConnection.setHostnameVerifier(новый HostnameVerifier() { @Override общедоступная логическая проверка (String arg0, SSLSession arg1) { вернуть истину; } }); } catch(Исключение е) { е.printStackTrace(); } окончательно { фис.закрыть(); } } catch(Исключение е) { е.printStackTrace(); } out = httpsConnection.getOutputStream(); Может ли это быть проблема на моей стороне или на сервере, на котором размещен веб-сервис? У меня быстрое подключение к Интернету и нет брандмауэра. Пожалуйста, мне очень нужна помощь, и я уже почти неделю мучаюсь с этой проблемой.

ОБНОВЛЕНИЕ: я использовал клиент openssl для тестирования хоста

openssl s_client -connect :port (где ip — это IP-адрес хоста, к которому я пытаюсь подключиться) Я получаю этот вывод из терминала:

connect: время ожидания операции истекло подключиться: errno=60

Однако, используя IP-адрес их среды тестирования, я могу общаться с ними, а openssl может отображать их цепочку сертификатов, поэтому соединение установлено успешно. Кажется, у меня проблемы с рабочим IP-адресом.

UPDATE_2: использовал nmap с флагом -P0 для проверки портов 80 и 443 хост-сервера, и оба они, похоже, фильтруются. Означает ли это, что мой IP-адрес не был успешно внесен в белый список?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»