2010-01-13 2 views
2

Je convertis un client et un service JAX-RPC en JAX-WS, et j'essaie de comprendre comment définir le délai d'attente du client par programmation. Ce sera un client JAX-WS 2.1 s'exécutant dans WebSphere 7. Dans JAX-RPC, il y avait une propriété que je pouvais définir sur SOAPBindingStub pour définir le délai d'expiration.Comment définir par programme le délai d'expiration du client JAX JAX-WS 2.1 dans WebSphere 7?

Dans le code JAX-WS, j'ai essayé plusieurs propriétés mise comme suit, sans succès:

PolicyFinderService policyFinderService = new PolicyFinderService(); 
PolicyFinder policyFinder = policyFinderService.getPolicyFinderSOAPPort(); 
((BindingProvider)policyFinder).getRequestContext().put(com.ibm.wsspi.websvcs.Constants.REQUEST_TIMEOUT_PROPERTY, 1); 
((BindingProvider)policyFinder).getRequestContext().put(com.ibm.wsspi.websvcs.Constants.WRITE_TIMEOUT_PROPERTY, 1); 
((BindingProvider)policyFinder).getRequestContext().put(com.ibm.wsspi.webservices.Constants.READ_TIMEOUT_PROPERTY, 1); 
((BindingProvider)policyFinder).getRequestContext().put(com.ibm.wsspi.webservices.Constants.RESPONSE_TIMEOUT_PROPERTY, 1); 
((BindingProvider)policyFinder).getRequestContext().put(com.ibm.wsspi.webservices.Constants.WRITE_TIMEOUT_PROPERTY, 1); 

Aucun de ceux-ci ont un effet quand je fais un appel et le service ne fonctionne pas , il se bloque juste pour la valeur de délai d'attente par défaut (je pense que 5 minutes) avant de temporiser.

Est-ce que quelqu'un a trouvé un moyen de définir par programme cette valeur de délai d'attente dans WebSphere 7?

Répondre

1

son possible, vous devrez peut-être

((BindingProvider)policyFinder).getRequestContext().put(
    com.ibm.wsspi.webservices.Constants.CONNECTION_TIMEOUT_PROPERTY, 2000); 

il peut le faire avant l'écriture ... peut-être

peut-être cela aussi?

reqCtx.put(JAXWSProperties.CONNECT_TIMEOUT, 10); 
reqCtx.put(BindingProviderProperties.REQUEST_TIMEOUT, 10); 

éventuellement REQUEST_TIMEOUT_PROPERTY peut effectivement être en millisecondes, alors peut-être un faible val de 1 obtient en quelque sorte arrondie à 0 (infini) plus tard ... peut-être essayer 2000?

+0

Merci, je vais essayer tous les deux. –

+0

C'était le com.ibm.wsspi.webservices.Constants.CONNECTION_TIMEOUT_PROPERTY! La configuration actuelle rencontre des difficultés pour établir la connexion, de sorte qu'elle n'atteint même jamais les autres délais d'attente. Par conséquent, le délai d'expiration de la connexion est nécessaire. La seule chose est, c'est en secondes, pas en millisecondes (j'ai utilisé une valeur de 10). Mais encore, c'est exactement ce que je cherchais. Merci! –

+0

J'ai essayé toutes les propriétés ci-dessus mais cela n'a eu aucun effet sur le délai de réponse. J'utilise un client jax-ws déployé sur WAS v.7 pour appeler un service Web déployé sur WebLogic v.10.3. Aucune suggestion? Merci! – guirgis

Questions connexes