使用我的自定义Servlet的GWT RPC机制

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

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

给你一个总结。 当使用RPC时,除了扩展RemoveServiceServlet之外, myService还需要实现名为myService的接口的方法。 这些方法将您要发送到服务器的数据作为参数。

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

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

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

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

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