Como eu configuro o timeout do JAX-WS webservice client (javax.xml.ws.client.receiveTimeout) nas configurações do JBoss VM client?

Se você se deparou com esse problema, percebeu que a documentação do JBoss para esse assunto é bem escarço na internet. Não há material oficial e muito menos artigos. Nos deparamos com este problema no trabalho onde precisamos aumentar o Timeout do Web service, mas não tínhamos autorização para modificar o código da aplicação.

Se já foi difícil encontrar exemplo de códigos para a modificação programática do timeout, modificá-lo via configurações foi impossível.

Depois de dias, um colega encontrou o código abaixo para modificar o timeout via código abaixo, encontrado na documentação do Jboss:

[code language=”java”]
public void testConfigureTimeout() throws Exception
{
//Configura o tempo máximo de espera para que uma conexão seja estabelecida
((BindingProvider)port).getRequestContext().put("javax.xml.ws.client.connectionTimeout", "6000");

//Configura o tempo máximo de espera até que uma resposta seja recebida
((BindingProvider) port).getRequestContext().put("javax.xml.ws.client.receiveTimeout", "1000");

port.echo("Teste de Timeout");
}
[/code]

Mas ainda hoje não encontramos uma solução para modificação através de algum parâmetro da configuração da máquina virtual do JBoss (VM client). A solução mais próximas que encontramos foi apenas para sistemas que utilizam o Frameworks CXF e Spring (Segundo o artigo, o único modo conhecido até hoje):

Adicione um arquivo cxf.xml ao classpath da aplicação (ex.: WEB-INF/classes ) com o código abaixo:

[code language=”xml”]
<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
xsi:schemaLocation="
http://cxf.apache.org/transports/http/configuration
http://cxf.apache.org/schemas/configuration/http-conf.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

<http-conf:conduit name="*.http-conduit">
<http-conf:client ReceiveTimeout="4000"/>
</http-conf:conduit>

</beans>
[/code]

O problema é que como o sistema utiliza as classes nativas javax.xml.ws e não um framework, não conseguimos uma forma de realizar esta tarefa.

Vocês conhecem alguma forma? Deixe nos comentários!

Um comentário em “Como eu configuro o timeout do JAX-WS webservice client (javax.xml.ws.client.receiveTimeout) nas configurações do JBoss VM client?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *