您正在尝试比较苹果和橙子。请阅读docs https://developers.google.com/web-toolkit/doc/latest/DevGuideServerCommunication#DevGuideRemoteProcedureCalls并制作任何简单的演示project https://www.google.by/#q=gwt+rpc+example清楚地理解这些概念。
远程服务是客户端RPC接口应该扩展的接口。和远程服务Servlet是服务器上 RPC 服务实现的 servlet 基类。它反序列化来自客户端的请求并序列化传出的响应。
要使用 RPC,您需要在中创建和定义client
包自己的接口应该扩展远程服务 http://google-web-toolkit.googlecode.com/svn/javadoc/2.5/com/google/gwt/user/client/rpc/RemoteService.html接口并指定服务器应实现的方法。
package com.yourproject.client;
import com.google.gwt.user.client.rpc.RemoteService;
public interface CustomInfoService extends RemoteService {
Info getInfo(String infoId);
}
然后您需要在服务器端提供该接口的实现。这应该是一个servletserver
扩展包远程服务Servlet http://google-web-toolkit.googlecode.com/svn/javadoc/2.5/com/google/gwt/user/server/rpc/RemoteServiceServlet.html并实施CustomInfoService
.
package com.yourproject.server;
import com.yourproject.client.CustomInfoService;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class InfoServiceImpl extends RemoteServiceServlet implements CustomInfoService {
public Info getInfo(String infoId) {
//implementation (for example getting info from database)
}
}
确保正常工作,您还需要设置 servlet 映射,创建异步接口,进行调用并在生成的回调中处理结果,实现接口可串行化 http://docs.oracle.com/javase/7/docs/api/java/io/Serializable.html or 是否可序列化 http://google-web-toolkit.googlecode.com/svn/javadoc/latest/com/google/gwt/user/client/rpc/IsSerializable.html用于通过 RPC 传递的实例类。