Seguir esse tutorial para criação de um cliente WS com chamada assíncrona
http://www.netbeans.org/kb/55/websvc-jax-ws-asynch_pt_BR.html
Criei um classe apenas para enviar as informações e adicionar dentro do Handler o responde para assincrono
import _196._39._76._201.ServicoRecebimento;
import _196._39._76._201.ServicoRecebimentoSoap;
import _196._39._76._201.RecebimentoDeDadosResponse;
import javax.xml.ws.AsyncHandler;
import javax.xml.ws.Response;
public class RecebimentoDeDadosAsync {
public void recebimentoDeDadosAsync(String xml) {
try { // Call Web Service Operation(async. callback)
ServicoRecebimento service = new ServicoRecebimento();
ServicoRecebimentoSoap port = service.getServicoRecebimentoSoap();
AsyncHandler<RecebimentoDeDadosResponse> asyncHandler = new AsyncHandler<RecebimentoDeDadosResponse>() {
public void handleResponse(Response<RecebimentoDeDadosResponse> response) {}
};
java.util.concurrent.Future<? extends Object> result = port.recebimentoDeDadosAsync(xml, asyncHandler);
} catch (Exception ex) {}
}
}
try { // Call Web Service Operation
ServicoRecebimento_Impl service = new ServicoRecebimento_Impl();
ServicoRecebimentoSoap port = service.getServicoRecebimentoSoap();
comandoXML = NXPxml.getXML(pacote);
String result = port.recebimentoDeDados(comandoXML);
} catch (Exception ex) {
ex.printStackTrace();
}
10 a 200 Milissegundos
e o Assincrono
450 a 2000 Milissegundos
Contudo, a minha duvida é com relação ao tempo, é normal ficar maior, ou estou fazendo alguma coisa errada junto à classe da chamada assíncrona?