тайм-аут не учитывается при использовании оси1.4 - PullRequest
2 голосов
/ 10 октября 2011

Я устанавливаю время ожидания при инициализации заглушки веб-службы и даже регистрирую его с помощью getTimeout () перед тем, как сделать вызов, чтобы убедиться, что он установлен, но вызов завершается независимо от установленного значения времени ожидания.Возможно, это ошибка или я что-то здесь упускаю?

Ниже мой код делает это:

proxy = new DCPControllerWSPortTypeProxy();
proxy.setEndpoint(endpoint);            
((Stub)proxy.getDCPControllerWSPortType()).setTimeout(120000);

1 Ответ

1 голос
/ 17 октября 2011

Чтобы решить эту проблему, вам нужно будет добавить следующий класс в ваш проект.Когда у меня возникла похожая проблема, я объявил ее как закрытый класс в том же классе, где я создаю свою заглушку.(В настоящее время я использую Axis 2)

private class CustomNetworkClient extends sun.net.NetworkClient
{

    public CustomNetworkClient(int readTimeout)
    {
        defaultSoTimeout = readTimeout;

    }

}

После этого вы можете добавить в код следующую строку, которая установит время ожидания.

CustomNetworkClient client = new CustomNetworkClient(SOAP_READ_TIMEOUT);

Или вы можетепросто сделайте следующее, так как вам на самом деле не нужен объект, который создается:

new CustomNetworkClient(SOAP_READ_TIMEOUT)

Ранее сообщалось об ошибке как ошибка, когда таймауты соединения и таймауты чтения не устанавливаются при использовании соединений HTTPS: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4700777

Следующая ссылка помогла мне разобраться в этом обходном пути: http://www.noizeramp.com/article.php?article=se-networking_specifics_under_Java_Web_Start

Надеюсь, это поможет вам как-то =)

...