GWT:引用弃用的类SerializableException

时间:2010-02-27 11:55:57

标签: java gwt

使用GWT时,我收到以下警告:

Referencing deprecated class 'com.google.gwt.user.client.rpc.SerializableException'

虽然这只是一个警告,但是每次运行项目时都不得不查看。

警告发生,因为我的RPC抛出了java.lang.Exception,因此从未实际使用过SerializableException,但GWT并不够聪明,无法解决这个问题。

除了编译我自己版本的gwt-user / gwt-servlet库之外,是否可以选择关闭警告或解决此问题?

感谢。

编辑:为了澄清,这是GWT 2.0,该项目是从Eclipse中的Google插件运行的。

4 个答案:

答案 0 :(得分:2)

GWT的Google群组suggested上有人使用SerializationException而非Exception。虽然SerializableException的javadoc表明Exception也应该没问题:/你使用的是哪个版本的GWT?

  

已过时。截至GWT 1.5,异常   实现Serializable,可以   用来代替[SerializableException]类

答案 1 :(得分:1)

Lombardi's blog has a discussion为什么完全这是在源中发生的。

是的,谷歌宣称投掷Exception是一件很好的事情,当它为Exception的子类生成大量不必要的JavaScript时,这是件好事,在你的情况下会生成关于这些子类的警告

但这就是抛出一个更具体的异常(一个没有弃用的后代)的更多理由。您的RPC上未经检查的例外仍可由UncaughtExceptionHandler处理。

答案 2 :(得分:0)

您可以设置gwt编译器的loglevel。看起来你已经将你的设置为“警告”,将其设置为信息以消除该消息。 如果您正在使用eclipse,请执行以下步骤:

  1. 右键点击项目
  2. Google>> GWT Complie
  3. 将日志级别设置为信息

答案 3 :(得分:0)

虽然扩展SerializationException是一种解决方法,但SerializationException的约定表明它不应该用作自定义RPC异常的父类。它表示序列化本身存在问题,而不是服务中的逻辑。

底层问题是编译器生成不必要的代码。要避免错误,只需确保代码不再使用SerializableException并将以下行添加到模块描述符中。

<extend-configuration-property name="rpc.blacklist" value="com.google.gwt.user.client.rpc.SerializableException"/>

修复编译问题后,您可以再次删除该行。以下是您可能希望明星/关注的问题的链接: http://code.google.com/p/google-web-toolkit/issues/detail?id=4438