Histórico da Página
Índice
Índice | ||||||||
---|---|---|---|---|---|---|---|---|
|
|
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 customizaçãodesenvolvimento 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 | ||
---|---|---|
| ||
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.
...