我目前有一个使用 RequestBuilde 的GWT应用程序 将消息发送到我拥有的servlet(使用 POST GET )和我的servlet (在 doPost doGet 中)" pauses"请求(这是通过使用 Servlets 3.0规范)并将其添加到队列中。
另外我有一个 守护程序线程在后台运行并“播放”。请求 当有新数据时点击 除了我刚发送的这个事实外,这对我来说很有用 现在的字符串,我想利用RPC机制发送 对象。结果 我的问题是:
如果我创建扩展的 myServiceImpl RemoteServiceServlet 我应该如何处理 doPost doGet
我需要暂停我的请求以利用异步支持,其中这应该完成吗?我可能在 myServiceImpl 类的RPC方法中调用 this.getThreadLocalRequest()方法,但我不确定它会有多么明智。
我是不 我确定我甚至理解GWT如何处理来自客户端的呼叫 那个异步接口。 是否有机会调用 doGet 作为servlet的例子 确保它调用所需的RPC方法?点击 对不起,如果我弄得一团糟,那就是我找不到更多 详细的技术信息,以及RPC业务的工作原理。点击 欣赏任何借贷手
以太

有帮助吗?

解决方案 2

我认为我当时的主要误解是GWT RPC建立在servlet机制(内部)上,因此尝试将该机制与异步servlet一起使用是不可能的,因为GWT RPC是建立在servlet 2.5上(同样,当时)。

其他提示

要理解RPC忘记POST和GET它的工作方式不同(从编程的角度来看。在内部它确实使用它,但你没有看到或不需要理解它,除非你想做一些异国情调)。 RPC的一个很好的起点是GWT文档: http://code.google的.com / webtoolkit /教程/ 1.6 / RPC.html

为您提供摘要。使用RPC时,除了扩展 RemoveServiceServlet 之外,servlet myServiceImpl 还需要实现名为 myService 的接口的方法。这些方法将您想要发送到服务器的数据作为参数。

myService 接口旁边,您需要创建一个 myServiceAsync 接口(两个接口都应该在客户端子包中)。此 myServiceAsync 接口应包含与 myService 接口相同的方法,除了每个方法返回 void 并且还有一个额外的最后一个参数 AsyncCallback callback

在您的客户端中,您需要检测GWT以通过GWT.create生成RPC(有关详细信息,请参阅文档。

要使用RPC,请在客户端代码中调用 myServiceAsync 接口上的方法,GWT负责将其发送到servlet。然后,servlet将使用您在客户端上传递的参数调用匹配方法。这是异步完成的。因此客户端直接从呼叫返回。

当服务器将结果发送回您使用 myServiceAsync 的回调时,或者调用 OnError OnSuccess 。如果服务器端的方法发生错误,则为 OnError ,否则为 OnSuccess OnSuccess 将使用您在servlet实现的方法中返回的返回值作为参数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top