2010-02-06 13 views
3

Il semble que le client d'administration Axis org.apache.axis2.client.ServiceClient émet org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry() et la nouvelle tentative est comme 3 fois par défaut. Existe-t-il un moyen de ne pas faire de nouvelles tentatives?AXIS2 Comment configurer la nouvelle tentative de connexion?

Mon code:

 ServiceClient client = new ServiceClient(); 
     Options opts = new Options(); 
     opts.setTo(new EndpointReference(strWebServiceUrl)); 
     opts.setAction(strNameOfMethodToInvoke); 
     opts.setTimeOutInMilliSeconds(timeOut); 
     client.setOptions(opts); 
     OMElement res = client.sendReceive(createRequest()); 
     return (res.toString()); 

Le code est maintenant

 ServiceClient client = new ServiceClient(); 
     Options opts = new Options(); 
     opts.setTo(new EndpointReference(strWebServiceUrl)); 
     opts.setAction("urn:" + strNameOfMethodToInvoke); 
     opts.setTimeOutInMilliSeconds(timeOut); 

     HttpMethodParams methodParams = new HttpMethodParams(); 
     DefaultHttpMethodRetryHandler retryHandler = new DefaultHttpMethodRetryHandler(0, false); 
     methodParams.setParameter(HttpMethodParams.RETRY_HANDLER, retryHandler); 
     opts.setProperty(HTTPConstants.HTTP_METHOD_PARAMS, methodParams); 

     client.setOptions(opts); 
     OMElement res = client.sendReceive(createRequest()); 
     return (res.toString()); 
+0

StackOverflow n'est pas un forum; Si vous avez besoin d'ajouter plus de détails, s'il vous plaît [modifier votre question] (http://stackoverflow.com/posts/2211578/edit). Les réponses sont censées être des réponses, pas des informations supplémentaires sur la question. – Will

Répondre

4

Vous pouvez définir à l'aide du paramètre HttpMethodParams.RETRY_HANDLER. En vous cas, par exemple:

HttpMethodParams methodParams = new HttpMethodParams(); 
DefaultHttpMethodRetryHandler retryHandler = new DefaultHttpMethodRetryHandler(0, false); 
methodParams.setParameter(HttpMethodParams.RETRY_HANDLER, retryHandler); 
opts.setProperty(HTTPConstants.HTTP_METHOD_PARAMS, methodParams); 

Il y a un fil sur le wso2.org website.

+0

Non! HTTPConstants.HTTP_METHOD_PARAMS n'existe pas. J'essaye avec HTTPConstants.HTTP_METHOD encore Retrying .. :( – Leonardo

+0

Quelle version de axis2 employez-vous? Parce que, HTTPConstants.HTTP_METHOD_PARAMS EXISTE dans 1.5 de l'axe 2. http://ws.apache.org/axis2/1_5/api/ org/apache/axe2/transport/http/HTTPConstants.html – rochb

+0

J'ai utilisé Axis2 1.3, maintenant mis à jour vers les dépendances 1.5 + Mais encore Retrying ..: ( J'ai ajouté le dernier code ci-dessous – Leonardo