https займет много времени для запуска в производственном режиме - PullRequest
0 голосов
/ 09 мая 2018

Итак, я отправил запрос https на другой сервер. Я сократил его время, добавив свойство set Timeout, которое истекает через 5 секунд в случае, если ответ не приходит с сервера. Проблема в настройке работает нормально в режиме разработки, но в рабочем режиме тайм-аут не работает и получение ответа от сервера занимает 4-5 минут.

ИСПОЛЬЗОВАНИЕ: Я не отправляю имя пользователя и пароль при подключении к серверу, так как мне нужно перехватить исключение и дать соответствующее сообщение пользователю. Я использую клиент XmlRpcClientConfigImpl, а также TrustManager и SSLContext из java.net для установления связи.

HA также сделал некоторые записи, в которых код внутри исключения запускается через 4-5 минут

Ссылка от setTimeout с использованием xmlprc

Я использую причал в качестве сервера Вот некоторый код, так как я не могу поделиться с ним большей частью

connected =true;
            Proxy proxy = new Proxy(ServerVO.getHost(), ServerVO.getPort(), ServerVO.getUserName(), ServerVO.getPassword(), isHTTP);
            int defaultConnTimeOut = SomeCass.getConnectionTimeOut();
            int defaultReplyTimeOut = SomeCass.getReplyTimeOut();

            SomeCass.setConnectionTimeOut(2000);
            SomeCass.setReplyTimeOut(5000);

            try {
                logger.info("fetching versionnnnnnnn-----------------");
            SomeCass.version();
            }
            catch (Exception e) {
                logger.info("fetching versionnnnnnnn-------exceptionnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn----------");
                connected = Boolean.FALSE;
            }

            finally {
                SomeCass.setConnectionTimeOut(defaultConnTimeOut);
                SomeCass.setReplyTimeOut(defaultReplyTimeOut);
            }

код для тайм-аута

XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
XmlRpcClient client = new XmlRpcClient();
config.setServerURL(new URL(serverURL));
config.setConnectionTimeout(xmlrpcConnTimeout);
config.setReplyTimeout(xmlrpcReplyTimeOut);
client.setConfig(config);

// установка имени пользователя хоста в конфигурации

Код для рукопожатия на констуркторе класса Proxy

  this.address = address;
            this.port = port;
            this.username = username;
            this.password = password;
            this.url = url;
            if(!this.isHTTP) {
                TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
                    public X509Certificate[] getAcceptedIssuers() {
                        return null;
                    }

                    public void checkClientTrusted(X509Certificate[] certs,
                            String authType) {
                        // Trust always
                    }

                    public void checkServerTrusted(X509Certificate[] certs,
                            String authType) {
                        // Trust always
                    }
                } };
                // Install the all-trusting trust manager
                SSLContext sc = SSLContext.getInstance("SSL");
                // Create empty HostnameVerifier
                HostnameVerifier hv = new HostnameVerifier() {
                    @Override
                    public boolean verify(String arg0, SSLSession arg1) {
                        return true;
                    }
                };

                sc.init(null, trustAllCerts, new java.security.SecureRandom());
                HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
                HttpsURLConnection.setDefaultHostnameVerifier(hv);
            }

1 Ответ

0 голосов
/ 10 мая 2018

Нашел решение для этого

Добавлено это свойство в XMLRPCclient

client.setTransportFactory(new XmlRpcCommonsTransportFactory(client));

Создает новый экземпляр для каждого запроса

https по-прежнему занимает 5 секунд больше, чем http, но я предполагаю, что это ожидаемое поведение, так как https в целом медленнее, чем http.По-прежнему, если кто-нибудь может подсказать, как сократить это время, будет большой помощью

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