使用我的自定义Servlet的GWT RPC机制
-
07-07-2019 - |
题
我目前有一个使用 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实现的方法中返回的返回值作为参数。