Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice

Índice
maxLevel4
outlinetrue
exclude.*ndice
stylenone

 


Plataforma

Produto: fluigTOTVS Fluig Plataforma

Tipo de API: Webservice  Web service


Ocorrência

Ocorre o erro "Read Timed Out" ao acessar um WebService CXF via desenvolvimento sobre a plataforma. O método parece executar internamente, porém demora demais e esse erro aparece antes de terminar o processamento do método em questão.  ~Poderiam me ajudar?


Causa

O WebService Web Service está configurado pra para um tempo menor que o necessário ou utilizando o tempo padrão de trinta segundos, que não está sendo o suficiente.

 


Solução

Conforme exemplo abaixo, deve-se configurar o WebService CXF antes de enviar a execução do método. 

Bloco de código
languagejs
MyWebService service = new MyWebService();
MyWebServicePortType client = service.MyWebServicePort();

org.apache.cxf.endpoint.Client cl = org.apache.cxf.frontend.ClientProxy.getClient(client);
 
org.apache.cxf.transport.http.HTTPConduit http = (org.apache.cxf.transport.http.HTTPConduit) cl.getConduit();
 
org.apache.cxf.transports.http.configuration.HTTPClientPolicy httpClientPolicy = new org.apache.cxf.transports.http.configuration.HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(0);
httpClientPolicy.setReceiveTimeout(0);
 
http.setClient(httpClientPolicy);

client.doSomething(...);

Outra forma possível é utilizando o método getCustomClient, conforme documentado segundo o link: Integração com Aplicativos Externo.

Este código foi retirado de um tutorial nos blogs de auxílio de desenvolvimento ao Apache CXF , seguindo o link original http://lhein.blogspot.com.br/2008/09/apache-cxf-and-time-outs.html e (link) e serve apenas para envios de requisições via Stubs stubs, não serve servindo para envios de XML puros, ou seja, fora do padrão do fluig de da plataforma de envio de requisições a serviços.