Как программно установить время ожидания клиента JMS JAX-WS 2.1 в WebSphere 7? - PullRequest
2 голосов
/ 13 января 2010

Я конвертирую клиент и службу JAX-RPC в JAX-WS и пытаюсь выяснить, как программно установить тайм-аут клиента. Это будет клиент JAX-WS 2.1, работающий в WebSphere 7. В JAX-RPC было свойство, которое я мог установить в SOAPBindingStub для установки времени ожидания.

В коде JAX-WS я попытался установить несколько свойств следующим образом, но не повезло:

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);

Ничто из этого не имеет никакого эффекта, когда я звоню, и служба не работает, она просто зависает для значения времени ожидания по умолчанию (я думаю, 5 минут) до истечения времени ожидания.

Кто-нибудь нашел способ программно установить это значение времени ожидания в WebSphere 7?

Ответы [ 2 ]

2 голосов
/ 15 июня 2011

См. Статью на http://www.websphere -world.com / modules.php? Name = Новости и файл = article & sid = 2058 Автор, здесь подробно описаны шаги для установки времени ожидания для клиента JAX-WS в WebSphere. С уважением, Майк

1 голос
/ 13 января 2010

возможно, вам может понадобиться

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

это может сделать это до записи ... возможно

возможно, это тоже?

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

возможно, REQUEST_TIMEOUT_PROPERTY на самом деле может быть в миллисекундах, так что, возможно, нижний предел 1 будет как-то округлен до 0 (бесконечно) позже ... может быть, попытается 2000?

...