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:

<br />
public void testConfigureTimeout() throws Exception<br />
{<br />
   //Configura o tempo máximo de espera para que uma conexão seja estabelecida<br />
   ((BindingProvider)port).getRequestContext().put(&quot;javax.xml.ws.client.connectionTimeout&quot;, &quot;6000&quot;);</p>
<p>   //Configura o tempo máximo de espera até que uma resposta seja recebida<br />
   ((BindingProvider) port).getRequestContext().put(&quot;javax.xml.ws.client.receiveTimeout&quot;, &quot;1000&quot;);</p>
<p>   port.echo(&quot;Teste de Timeout&quot;);<br />
}<br />

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:

<br />
&lt;?xml version=&quot;1.0&quot;?&gt;<br />
    &lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;<br />
        xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;<br />
        xmlns:beans=&quot;http://www.springframework.org/schema/beans&quot;<br />
        xmlns:http-conf=&quot;http://cxf.apache.org/transports/http/configuration&quot;<br />
        xsi:schemaLocation=&quot;<br />
            http://cxf.apache.org/transports/http/configuration<br />
            http://cxf.apache.org/schemas/configuration/http-conf.xsd<br />
            http://www.springframework.org/schema/beans<br />
            http://www.springframework.org/schema/beans/spring-beans.xsd"></p>
<p>        &lt;http-conf:conduit name=&quot;*.http-conduit&quot;&gt;<br />
            &lt;http-conf:client ReceiveTimeout=&quot;4000&quot;/&gt;<br />
        &lt;/http-conf:conduit&gt;</p>
<p>    &lt;/beans&gt;<br />

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!

Deixe uma resposta

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