我知道第一个是类,第二个是接口(interface),但重点是, 为什么客户端服务应该扩展 RemoteService 并为 ServiceImpl 类扩展 RemoteServiceServlet
那么幕后究竟是什么?!
最佳答案
您正在尝试比较苹果和橙子。请阅读docs并制作任何简单的演示 project清楚地理解这些概念。
RemoteService是客户端RPC接口(interface)应该扩展的接口(interface)。 RemoteServiceServlet 是服务器上 RPC 服务实现的 servlet 基类。它反序列化来自客户端的请求并序列化传出的响应。
要使用 RPC,您需要在 client
包中创建和定义自己的接口(interface),应该扩展 RemoteService接口(interface)并指定服务器应实现的方法。
package com.yourproject.client;
import com.google.gwt.user.client.rpc.RemoteService;
public interface CustomInfoService extends RemoteService {
Info getInfo(String infoId);
}
然后你需要在服务器端提供这个接口(interface)的实现。这应该是 server
包中的一个 servlet,它扩展了 RemoteServiceServlet并实现 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 映射,创建异步接口(interface),调用它并在生成的回调中处理结果,实现接口(interface) Serializable或 IsSerializable对于通过 RPC 传递的实例类。
关于jakarta-ee - RemoteServiceServlet 和 RemoteService 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13372633/