Young Yang有一篇优秀的文章解释了如何使用 wsimport 创建具有异步 Web 服务调用的 Web 服务客户端工件。异步要求 WSDL 具有标记
<enableAsyncMapping>true</enableAsyncMapping>
在其绑定部分。如果您对带有 JAX-WS 注释的 Java 类使用自下而上的方法,则不能直接在 WSDL 中执行此操作,因为 WSDL 是 Web 服务器上生成的工件。相反,当在 WSDL 上执行 wsimport 时,您可以使用 Ant 或 Maven 等构建工具来包含此绑定。
生成的客户端工件具有异步方法调用,这些方法调用返回
Future<?>
或一个
Response
这是一个未来。
阅读 Yang 的文章后,我的问题是为什么不使用 Executors 和 Futures 来滚动我自己的异步 Web 服务调用。wsimport 创建的工件是否提供了一些我无法通过自己滚动的方法看到的优势?
如果有人对这两种方法都有经验或见解,我将不胜感激您的反馈。