Chamadas de serviços da web assíncronas com JAX-WS: Use o suporte a wsimport para assíncronia ou rolar o meu próprio?
Há umexcelente artigo de Young Yang que explica como usar o wsimport para criar artefatos do cliente de serviço da web que possuem chamadas de serviço da web assíncronas. Asynchrony requer que o WSDL tenha a tag
<enableAsyncMapping>true</enableAsyncMapping>
na sua seção de ligações. Se você estiver usando a abordagem de baixo para cima com classes Java anotadas JAX-WS, não será possível fazer isso diretamente no WSDL, porque o WSDL é um artefato gerado no servidor da web. Em vez disso, você usa ferramentas de construção como Ant ou Maven para incluir essa ligação quando o wsimport é executado no WSDL.
Os artefatos do cliente gerados têm chamadas de método assíncrono que retornam um
Future<?>
ou um
Response
que é um futuro.
Minha pergunta depois de ler o artigo de Yang é por que não apenas rolar minhas próprias chamadas de serviço web assíncronas usando Executores e Futuros. Os artefatos criados pelo wsimport oferecem alguma vantagem que não posso ver em uma abordagem de rolagem sua?
Se alguém tiver experiência ou percepção com as duas abordagens, agradeceria seu feedback.