GWT RPC方法调用失败,没有错误消息

时间:2012-11-19 11:31:36

标签: gwt rpc

在GWT应用程序中,我有RPC接口。一些方法工作正常(即RemoeServiceServlet配置正常),但是当我尝试调用另一个方法时,它总是以onFailure()方法失败。 Ajax调用也不会发生(我可以看到它使用FireBug,也不会发生服务器端方法调用),但此服务的另一种方法也执行Ajax调用。

当我尝试使用e.getMessage()记录错误时,我收到“undefined”消息。我还尝试使用try-catch包装RPC调用代码 - 没有错误消息。

这个问题可以与GWT-RPC序列化相关吗?

编辑: Opera Dragonfly在生成的JavaScript中使用以下方法显示错误(使用PRETTY模式编译):

function $check(this$static, typeSignature){ if (isNull($get_3(this$static.methodMapNative, typeSignature))) { Unhandled Object: undefined throw new SerializationException_1(typeSignature); } }

带有错误消息

  

未处理的对象:未定义

1 个答案:

答案 0 :(得分:1)

我猜你有序列化问题,请记住Java序列化与GWT序列化不一样。

使用RPC时,序列化错误通常没有有意义的错误消息。

  • 必须具有0-ary构造函数
  • 最终字段本质上是瞬态的(即,不要在要序列化的类中使用最终字段)
  • collections(ex List和Set)必须使用@ gwt.typeArgs注释。 @ gwt.typeArgs是一个JavaDoc注释,因此它必须包装在JavaDoc注释中 例如:/ ** @ gwt.typeArgs * /

有关详细信息,请参阅: GWT Serialization

要尝试的另一件事: 当从eclipse-plugin运行GWT时,会创建eclipse项目中的一个文件夹(我相信它的名为gwt-unitCache)。有时我自己的GWT项目生病并输出奇怪的异常,我可以通过删除文件夹并再次运行项目来解决这个问题。