如何进行GWT服务器调用(GWT RPC?)
嗨,我是新来的gwt(java based gui)
。 在这里,我试图进行GWT服务器调用。
我想将MyBean
保存到我的Database
。
后来我要update,delete etc..
有什么可能性,我怎样才能做到这一点?
使用GWT(如RequestFactory
, RPC
使用GWT来访问数据库。
在开始服务器呼叫之前,请通过,
-
GWT RPC ( 使服务器异步调用 )
-
RequestFactory ( 用于创建面向数据的服务的GWT-RPC的替代方案。 )
经过链接后,这里是一个如何制作RPC的示例 。
来到你的MyBean CRUD操作, 简而言之就是简单的RPC结构 ,如下所示:
GWT Code <===> InterfaceAsync <===> Interface (Synchronous)<===> Server Code
我试图用你自己的元素来解释。
同步接口(整个RPC的核心):
import com.google.gwt.user.client.rpc.RemoteService; public interface BeanProcessRPCInterface extends RemoteService { public Mybean processMybeanRPC(Mybean bean); }
ASynchronous接口(客户端的关键部分):
import com.google.gwt.user.client.rpc.AsyncCallback; public interface BeanProcessRPCInterfaceAsync { public void processMybeanRPC (Mybean bean, AsyncCallback callback); }
在这里,您将使用实现“BeanProcessRPCInterface”的Service
(等于servlet)
public class BeanProcessRPCImpl extends RemoteServiceServlet implements BeanProcessRPCInterface { private static final long serialVersionUID = 1L; public Mybean processMybeanRPC(Mybean bean) { //Process your widget here (CRUD operations) } **you can override doget,doPost,doDelete....etc along with your methods }
在web.xml中映射上面的类;
beanrpc com.server.BeanProcessRPCImpl beanrpc /beanrpc
最后在您的GWT代码中。使用如下服务
在代码中使用:
//注册服务。
private final BeanProcessRPCInterfaceAsync beanService = GWT.create(BeanProcessRPCInterface.class); ServiceDefTarget endpoint = (ServiceDefTarget) service; endpoint.setServiceEntryPoint('beanrpc');
请求服务器回调
beanService.processMybeanRPC(mybean, callback); AsyncCallback callback = new AsyncCallback() { public void onFailure(Throwable caught) { //Do on fail } public void onSuccess(Object result) { //Process successfully done with result (result is which you // returned in impl class) . } };
PS。包装结构的软件:
BeanProcessRPCInterfaceAsync,BeanProcessRPCInterface应该在client *包中
MyBean类应该在shared *包中
BeanProcessRPCImpl应该在server *包中
祝你好运。