【发布时间】:2011-11-07 22:15:51
【问题描述】:
您能否在使用有时需要几分钟才能返回值的 REST Web 服务的客户端上与 Java 进行异步通信?
在查看以下内容后,我认为不是。但是 C# 确实允许这样做
user1019776
Which way is preferred when doing asynchronous WCF calls? 和 WCF asynchronous callback
但它们适用于 REST 吗?应该不会吧。
回复客户:How do you make a WCF Client asynchronous?
答案:要处理异步 WCF 事件,您可以通过 Event 方法使客户端异步,请参阅:http://msdn.microsoft.com/en-us/library/wewwczdw.aspx
(但请确保它是一个异步“触发后忘记”事件),另请参阅 Java 上的这个线程(更多的是发布者/订阅者同步模型:Does Java have native support for events, similar to that of C#?)
【问题讨论】:
-
异步发送数据到TCP套接字的方式有很多,不知道你指的是什么类型。你能澄清一下你想要做什么,什么不适合你吗?什么样的服务需要几分钟?也许你应该担心修复服务。
-
您提出的问题的答案很简单:“是的,当然。”您是否正在寻找如何在 Web 容器环境中进行操作?有关如何仅使用 JavaSE 编写解决方案的帮助?如何使用 Apache Async HttpClient?
-
您可以通过不同的方式使用 Java IO、NIO 和 NIO2 来实现。更不用说使用各种库的方法了。有这么多库可以做到这一点,很难知道推荐哪一个。
-
好吧,Java 没有所谓的“事件”或“委托”,但是它以各种方式支持异步通信。
-
FWIW,WCF 不需要 使用 SOAP。您可以在其下使用其他 RESTful 协议。 @PeterLawrey 为您提供 Java 所需的答案。
标签: java wcf asynchronous-wcf-call