Timer dans Java / ATG-Appel de services Web


J'ai généré une demande de services Web. J'ai besoin de faire faire une vérification sur mon appel. Si la réponse n'est pas renvoyée dans les 5 secondes, une autre requête sera lancée.

Pseudo Code:

Réponse webServiceClass = xyz.getData(); Si la réponse n'est pas obtenue en 5 secondes - envoyez une autre requête CheckData() aux services Web.Cela devrait être fait pour un maximum de 5 fois.

Je dois le faire sans utiliser de threads.

Author: user3554403, 2014-10-20

1 answers

Essayez quelque chose comme ça (pas testé mais devrait vous donner l'idée):

final MultiThreadedHttpConnectionManager httpConnections = new MultiThreadedHttpConnectionManager();
final HttpConnectionManagerParams connParams = manager.getParams();
final HttpClient httpClient = new HttpClient(manager);
final int connectionTimeout = 5000;         
connParams.setConnectionTimeout(connectionTimeout);

    try 
    {
        // your web service call goes here
    }
    catch(ConnectTimeoutException cte)
    {   
        if (isLoggingError())
        {
            logError(cte.getMessage());
        }
    }
    catch(IOException ioe)
    {
        if (isLoggingError())
        {
            logError(ioe.getMessage());
        }
    }
    finally 
    {
        // make sure we always release the connection
        method.releaseConnection();
    }       
 0
Author: bated, 2014-10-20 17:57:10