进行 RPC 调用时出现序列化异常

2024-01-19

我创建了一个非常基本的应用程序。我只有一个服务类和一个相应的异步类,该类仅包含 Java 类型,没有自定义类。但我仍然遇到序列化异常。

我的服务类看起来像这样。

public interface MyService extends RemoteService {
  public String getName();
  public Object getAdditionalDetials(ArrayList<String> ids);
  public Date getJoiningDate();
}

我的异步界面如下所示

public interface MyServiceAsync {
  public void getName(AsyncCallback<String> callback);
  public void getAdditionalDetials(ArrayList<String> ids, AsyncCallback<Object> callback);
  public void getJoiningDate(AsyncCallback<Date> callback);
}

我知道我犯了一些愚蠢的错误。


我对 gwt rpc 和序列化机制很天真,但会尝试回答你的问题。

每当您编写涉及 RPC 的类时,GWT 都会创建一个Serialization Policy File。序列化策略文件包含可以序列化的允许类型的白名单。

在您的服务方法中,您提到和引用的所有类型如果实现了,都将自动添加到此列表中IsSerializable http://google-web-toolkit.googlecode.com/svn/javadoc/2.5/com/google/gwt/user/client/rpc/IsSerializable.html。在您的情况下,您使用了以下两种方法,

public String getName();
public Date getJoiningDate();

这里你已经使用了String and Date作为您的返回类型,因此它被添加到您的Serialization Policy File。但在下面的方法中他们存在一个问题,

public Object getAdditionalDetials(Arraylist<String> ids);

这里你已经使用了ArrayList and String这不是问题,它们将被添加到您的白名单中,但问题是您提到的返回类型为Object。这里GWT编译器不知道要添加到什么类型whitelist or Serialization Policy因此它不会通过你的 RPC 调用。解决方案是使用提及一个实现的类IsSerializable http://google-web-toolkit.googlecode.com/svn/javadoc/2.5/com/google/gwt/user/client/rpc/IsSerializable.html而不是提及 type 的返回类型Object.

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

进行 RPC 调用时出现序列化异常 的相关文章

  • 作为 SAML 令牌身份验证的一部分,URL 片段丢失;解决方法/标准模式?

    几种 Web 应用程序身份验证协议 例如 WS Federation 和 SAML 协议 即所谓的 被动 协议 显然还有 ASP NET Forms 身份验证 请参阅这个 StackOverflow 问题 https stackoverfl
  • 使用共享包中的 GWT NumberFormat 类

    在我的 GWT 项目中 我的服务返回一个类型的对象Shield我已经定义了 作为Shield客户端和服务器都使用类型 我已将类定义放在共享包中 The Shield类使用com google gwt i18n client NumberFo
  • GWT 中scheduleDeferred 的用法?

    您好 请告诉我以下代码在 GWT 中的用法 Scheduler get scheduleDeferred new ScheduledCommand Override public void execute code Thanks 它推迟一些
  • 如何从浏览器控制台访问 GWT 的 JsInterop 导出类型?

    我正在运行 GWT 应用程序 并且想使用 JsInterop 快速测试某些内容 具体来说 我导出了一个enum package com mypackage test JsType enum MyEnum A B C 我想在编写任何代码之前检
  • 如何在另一个应用程序中使用一个 gwt 应用程序的源代码

    我有两个不同的 gwt 项目 并且想要在另一个模块中使用一个 gwt 应用程序的类 有什么办法可以做到这一点吗 我遵循以下方法 在第二个项目中添加了以下两行
  • 在 GWT 中使数据网格的行可拖动

    我想制作一个数据网格 其中的行可以拖动 以便人们可以通过拖动行来上下移动行 由于数据网格的行将作为元素获取 我知道如何使小部件可拖动 但是如何使数据网格的行可拖动 我不想使用任何额外的插件或库来实现此目的 我所知道的唯一支持单元格小部件拖放
  • GWT-出口商。工作示例

    我有一个 Java 库 我需要将其转换为 JS 我找到了解决方案GWT 创建实用的 javascript 库 https stackoverflow com questions 3125556 gwt to create utility j
  • GWT DataGrid 中的延迟加载数据

    是否可以将数据延迟加载到 GWT DataGrid 中 类似于 GWT CellList 延迟加载数据的方式 我有一个 GWT DataGrid 它可能会带回数百行 但一次只显示大约 20 行 发生这种情况时 网格的加载速度相当慢 我想使用
  • GWT获取应用程序的路径

    我有一个 GWT 应用程序 当我在运行应用程序后部署本地主页时 其主页为 localhost 8888 myapp html 但当我们将其部署到服务器时 在应用程序运行后其主页为 107 20 239 198 8080 myapp myap
  • 从 gwt 中的代码触发点击事件

    我在 gwt 中创建了一个自定义小部件 它扩展了复合材料 我正在其中使用焦点面板 对于 FocusPanel 我添加了 ClickHandler 然后我添加了键盘监听器 现在按 Enter 键 它应该触发单击事件 任何人都可以提供帮助吗 我
  • GWT序列化问题

    我在返回一个通过 RPC 实现 IsSerialized 的对象的 ArrayList 时遇到了很大的麻烦 IsSerialized pojo 包含一个变量 一个字符串 并具有一个 0 参数构造函数 我已经从我的战争中删除了 gwt rpc
  • 从输入跳到 CellTable 中的输入

    我有一个 CellTable 其中包含一堆渲染到的单元格
  • 如何向 UiBinder 中的 Google Web Toolkit 弹性表添加行?

    我在哪里可以找到UiBinder http code google com p google web toolkit wiki UiBinderFlexTable 的模板 我在用谷歌网络工具包 http en wikipedia org w
  • java.lang.ClassNotFoundException:com.google.gwt.user.client.rpc.RemoteService

    在 Tomcat 6 中部署 war 文件时出现以下异常 java lang ClassNotFoundException com google gwt user client rpc RemoteService 所以我尝试通过 webAp
  • GWT 和身份验证

    保护 GWT Tomcat 应用程序执行身份验证和授权的最佳策略是什么 有两种基本策略 确保入口点安全 确保远程服务的安全 确保入口点安全 最简单的方法是使用常规 Web 应用程序安全工具限制对 GWT 生成的 html js 文件的访问
  • 如何使用 GWT 2.4 在服务器端动态创建 UI

    我正在尝试使用 Google Web Toolkit v2 4 创建用户界面 由于多种原因 我需要在运行时指定服务器上接口的内容 我的意思不仅仅是按钮需要动态标签等 而是整个 UI 需要在运行时创建 我的大部分 UI 都可以指定为直接的 H
  • 如何清除gwt中的缓存?

    我怎样才能清除缓存gwt 或者有什么方法可以阻止浏览器保留缓存gwt 当您部署 GWT 应用程序时 避免代理和浏览器缓存 GWT 生成的 nocache js 文件非常重要 一种解决方案是实现一个 Servlet 过滤器 添加控制缓存行为的
  • GWT 和 Guava 的问题

    我很难让 GWT 与 Guava 一起工作 我添加了guava r09 gwt jar到我的类路径 并且
  • 想要在 GWT 单元列表中实现“标记为已读”功能

    我想实施这个单元格列表的例子 http gwt googleusercontent com samples Showcase Showcase html CwCellList经过一处修改 我想在有人点击后将每一行设置为灰色 它应该保留在那里
  • 根据外形尺寸更改入口点类别

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

随机推荐