jakarta-ee - RemoteServiceServlet 和 RemoteService 有什么区别?

标签 jakarta-ee gwt

我知道第一个是类,第二个是接口(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) SerializableIsSerializable对于通过 RPC 传递的实例类。

关于jakarta-ee - RemoteServiceServlet 和 RemoteService 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13372633/

相关文章:

java - 输入新条目时需要更新部分页面

java - 在 SessionScoped CDI Bean 中注入(inject)无状态 EJB

java - 如何将 "export"映射作为 Java EE 上的网站参数

gwt - 您会为 GWT 开发推荐什么 CI 工具?

google-chrome - 为什么 Chrome 开发者工具的计算样式显示的内容与样式选项卡不同?

jakarta-ee - EE 6(GlassFish): how many containers?多少个单例?

java - 同一 Java EE session Bean 中的数据源和 EntityManager

java - 带有进度监听器的 GWT FileUpload

java - 使用 GWT 和 Spring Security 的条件 UI?

java - 使用 Google 地球插件管理气球的最明智方法是什么?