RemoteServiceServlet 和 RemoteService 有什么区别?

2024-03-27

我知道第一个是类,第二个是接口,但重点是, 为什么客户服务应该扩展远程服务并为服务实现类扩展远程服务Servlet

那么幕后到底是什么?


您正在尝试比较苹果和橙子。请阅读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 传递的实例类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RemoteServiceServlet 和 RemoteService 有什么区别? 的相关文章

  • 根据外形尺寸更改入口点类别

    如果用户从移动 Web 浏览器或桌面 Web 浏览器访问 我希望在我的 GWT 应用程序中加载不同的用户界面 我想知道如何编辑我的 Application gwt xml 文件 更改根据外形规格加载哪个入口点类 我认为这可能是这样的 但我只
  • Spring Web应用程序在启动时从数据库初始化

    Spring 3 1 汤姆猫 我这里有一个设计问题 数据库中已指定一组类别 这些类别可以被认为是全局的 因为它们可以在整个网络应用程序中使用 我想做的是在服务器启动时读取这些类别并用 Java 填充某种类型的集合 只需要在启动时从数据库读取
  • Eclipse 中的 Java EE 视角

    我有标准版的 eclipse Galileo 现在我想在上面开发企业应用程序 知道如何获得 Java EE 视角吗 标准版如何安装Java EE工具 我有同样的问题 我首先使用 Ubuntu 软件中心安装了最新的 Eclipse 平台 In
  • 大型应用的回流/布局性能

    我正在使用 GWT 构建一个 HTML 应用程序 其性能总体上是正确的 有时 它会加载 DOM 中的许多对象 并且应用程序会变得很慢 我使用 Chrome 开发者工具分析器来查看时间花在哪里 在 Chrome 下 一旦应用程序被编译 即没有
  • org.apache.derby.jdbc.ClientDriver 在哪里?

    我下载了jar包核心 Apache Derby 数据库引擎 还包括嵌入式 JDBC 驱动程序 10 9 1 0 http mvnrepository com artifact org apache derby derby 但那个罐子不包括
  • 使用 GWT 读取非常大的本地 XML 文件

    我正在使用 GWT 构建我的第一个 Java 应用程序 它必须从一个非常大的 XML 文件中读取数据 当我尝试发送对文件中信息的请求时遇到问题 并且我不太确定它是否与文件的大小或我的语义有关 在我的程序中 我有以下内容 static fin
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • GWT 2.3 开发模式 - 托管模式 JSP 编译似乎不使用 java 1.5 兼容性

    无法编译 JSP 类 生成的 servlet 错误 DefaultMessage 上次更新 0 日期 中 0 时间 HH mm ss z 语法 错误 注释仅在源级别为 1 5 时可用 在尝试以开发模式在 Web 浏览器中打开我的 gwt 模
  • 使用@Singleton和@Stateless加载和缓存应用程序范围的数据

    我正在寻找一种优雅的解决方案来解决加载和缓存的老问题static shared应用程序启动时的数据 具有无限的生命周期 我以前的方法是 Spring Singleton Bean 但我现在正在尝试用 Spring Singleton Bea
  • 在 GWT 中,在任何主机页标记上添加事件处理程序

    我想为任何标签添加 MouseOver 事件处理程序 举个例子 我想为旧版 HTML 页面中的每个锚点页面添加事件处理程序 继GWT指南 http code google com webtoolkit doc 1 6 DevGuideUse
  • gwt 中的垂直居中

    如何使用垂直面板在 gwt 中垂直居中 或者请告诉我有什么方法可以进行垂直居中 如果你想直接使用VerticalPanel从代码中 您需要使用setVerticalAlignment HasVerticalAlignment ALIGN M
  • 由于 maven-surefire-plugin,Maven 构建失败

    我这里有类似的问题eclipse 中缺少 maven surefire plugin https stackoverflow com questions 23588957 maven surefire plugin missing in e
  • 在休眠标准中使用总和和算术结果作为顺序键

    我如何在休眠条件中表达这个查询 SELECT anId SUM fieldA AS A SUM fieldB AS B SUM fieldA SUM fieldB AS total FROM tableA GROUP BY anId ORD
  • 您建议使用哪种压缩(GZIP 是最流行的)servlet 过滤器?

    我正在寻找一个用于大容量网络应用程序的 GZIP servlet 过滤器 我不想使用容器特定的选项 要求 能够压缩响应负载 XML Faster 已在大批量应用的生产中得到验证 应适当设置适当内容编码 跨容器移植 可选择解压缩请求 谢谢 我
  • Tomcat 基于表单的身份验证出现 HTTP 状态 408 错误

    我的申请是写在JSP并且有基于表单的身份验证 我正在使用 Apache 和 Tomcat 7 这是我的问题 有时 当会话超时并尝试重新登录应用程序时 它会显示以下 408 错误消息 HTTP 状态 408 已超出登录过程允许的时间 如果您想
  • 在 Java/GWT 中解析用户时间输入

    解析用户在 GWT 中的文本字段中键入的时间的最佳方法是什么 默认时间格式要求用户完全按照区域设置指定的时间格式输入时间 我想要更加灵活 因为用户可以通过多种不同的方式输入时间 例如 8 8p 8pm 8 15pm 13 15 1315 1
  • 无法获取 ConfigBean 中实体的正确 ID - Java EE

    我正在构建一个药房管理应用程序 每个药房都需要一名管理员 约束是这样的 public class Pharmacy implements Serializable Id GeneratedValue strategy GenerationT
  • JSF 2.x @EJB 依赖注入错误

    因此 正如编程中通常发生的那样 我提出了一个问题 而一个潜在的解决方案又引发了更多问题 和错误 我刚开始使用 servlet JSF 和 EJB 并且遇到了依赖注入错误 这是我原来的问题 JSF h 标签不显示 https stackove
  • 为什么要汇集无状态 EJB?

    应用服务器池使用无状态 EJB 的原因是什么 我可以理解 控制传入调用的应用程序工作负载很有用 但这只能证明将作为 FA ADE 与调用者客户端一起提供服务的 EJB 池是合理的 池化内部 EJB 那些未公开且仅在内部调用以执行业务逻辑的
  • GWT - css 中常量的问题

    我是 GWT 新手 我正在构建一个小型示例应用程序 我有几个 CSS 文件 我能够成功使用 ClientBundle 和 CssResource 将样式分配给 UiBinder 脚本中定义的元素 现在我想更进一步 使用 def css ru

随机推荐

  • 如何选择一个CSS使用最深的类?

    如何选择一个css类的使用最深 下面的列表中 如何选择使用最深的类 active 在这种情况下是 li 包裹 span Item 1 1 1 1 span ul li class active span Item 1 span ul li
  • angularjs:在 ng-switch 中更改控制器的父范围

    因此 我可以从子控制器更改模型值 但是当子控制器处于ng switch然后就不行了 为什么呢 我创建一个例子 http plnkr co edit R7D8Xa1HBmYnwffbHQGD p preview来展示它 避免这种情况的一种方法
  • 如何传递动态参数 Airflow 运算符?

    我正在使用 Airflow 在 Google Cloud Composer 上运行 Spark 作业 我需要 创建集群 用户提供的YAML参数 Spark 作业列表 作业参数也由每个作业 YAML 提供 借助 Airflow API 我可以
  • gcc 自动矢量化(未处理的数据引用)

    我不明白为什么这样的代码没有用 gcc 4 4 6 进行矢量化 int MyFunc const float pfTab float pfResult int iSize int iIndex for int i 0 i lt iSize
  • SqlServer -> MySQL 中的 FILESTREAM 存储等效吗?

    MySQL 版本中是否有等效项 5 5 Sql Server 中的 FILESTREAM 存储 目前来看 没有 只有BLOB CLOB等数据类型在MySQL中存储二进制数据
  • 解析 AWS Athena/AWS Glue 目录中某一列中包含换行符的 csv 文件

    我有如下示例数据 id log code sequence 100 sample lt gt lt gt O sample PILE UP 3 sample 20 7 M 101 sample 4 52 sample CM 21 7 M 1
  • Java FreeTTS 缺少语音

    我写了一个小程序 它应该简单地用 Java 进行文本到语音转换 我的班级看起来像这样 import com sun speech freetts Voice import com sun speech freetts VoiceManage
  • 排除 WCF DataContract 上的属性

    给定这样的 WCF 接口定义 是否有办法从 ComplexObject 响应值中排除属性 我想排除 ChildObjects 属性 我不想从属性定义中删除 DataMember 属性 因为我需要在另一种情况下将其序列化 ServiceCon
  • Java链表如何创建一个保存字符串和整数的节点?

    我一整天都在做这件事 我可以毫无问题地创建链接列表并显示 删除其中的数据 我的问题是 我不确定如何创建每个节点的航班链接列表 包括对乘客链接列表的引用 这是我的高级算法课上的作业 我在这里画一个空白 创建一个容纳乘客的对象 public c
  • 在 GO 中打印表格的有效方法

    我想知道一种在 Go 中打印表格的简单有效的方法 我找到的解决方案有效 但它真的很难看 非常感谢 outfile file tsv f err os Create outfile var buffer bytes Buffer buffer
  • HTML“object”标签是否有跨浏览器标准 onload 事件?

    我知道 IE 支持onreadystatechange属性上的object标签 但这似乎不是标准方式 因此所有其他浏览器都不支持它 更新 澄清一下 我不是在寻找 DOM Load 事件 而是在寻找object标签本身 例如object标签将
  • -bash:react-native:找不到命令

    我已经成功安装了brew node 4 0 watchman和flow 当我安装时我收到了以下信息npm install g react native cli Users home node bin react native gt User
  • Bower:安装后“未找到命令”

    当我执行时我似乎得到以下信息npm install bower g usr local share npm bin bower gt usr local share npm lib node modules bower bin bower
  • ADT 到 Android Studio 意外的顶级异常

    因此 我正在尝试将 Eclipse ADT 项目迁移到 Android Studio 中 我使用 appcompat v7 项目作为 eclipse 中的库项目 我按照 Android 开发网站上的说明进行操作 但仍然收到此错误 Error
  • `ejabberdctl start` 导致“内核 pid 终止”错误 - 我该怎么办?

    我用谷歌搜索了三个小时但没有结果 我有一个 ejabberd 安装 但不是使用 apt 安装的 它是从源代码安装的 其中没有名为 ejabberd 的程序 启动和停止 一切都是通过 ejabberdctl 进行的 它完美地运行了一个月 突然
  • CDN 上的 Dojo 与自己安装的 Dojo

    我使用了相当多的 Dojo 但迄今为止我仅通过包含来自 AOL Google 等 CDN 来使用它 托管 Dojo 副本而不是通过 CDN 使用它是否有优势 我没有太多需要改变代码库 但我想还有其他优点 缺点 通过托管您自己的 Dojo 环
  • Tornado 如何在任意位置提供单个静态文件?

    我正在使用 Tornado 开发一个简单的网络应用程序 它提供一些动态文件和一些静态文件 动态文件不是问题 但我在提供静态文件时遇到问题 我想做的是在访问 foo json URL 时提供文件 path to foo json 请注意 pa
  • Docker 输出中缺少层 ID

    我刚刚按照官方指南在 Ubuntu 上全新安装了 Docker https docs docker com engine installation linux ubuntulinux https docs docker com engine
  • Laravel 4 如何在视图中显示 Flash 消息?

    我正在尝试显示我的闪存消息 这是我的路由文件中的 Route post users groups save function return Redirect to users groups gt withInput gt with succ
  • RemoteServiceServlet 和 RemoteService 有什么区别?

    我知道第一个是类 第二个是接口 但重点是 为什么客户服务应该扩展远程服务并为服务实现类扩展远程服务Servlet 那么幕后到底是什么 您正在尝试比较苹果和橙子 请阅读docs https developers google com web