GWT: ссылка на устаревший класс SerializableException - PullRequest
3 голосов
/ 27 февраля 2010

При использовании GWT я получаю следующее предупреждение:

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

Хотя это всего лишь предупреждение, оно ужасно надоело смотреть на каждый раз, когда я запускаю проект.

Предупреждение появляется, так как мой RPC выдает java.lang.Exception и, таким образом, фактически никогда не использует SerializableException, но GWT недостаточно умен, чтобы это выяснить.

Есть ли возможность отключить предупреждение или исправить это, кроме компиляции моей собственной версии библиотек gwt-user / gwt-servlet?

Спасибо.

Редактировать: Для пояснения, это GWT 2.0, и проект запускается из плагина Google в Eclipse.

Ответы [ 4 ]

2 голосов
/ 28 февраля 2010

Кто-то из группы Google GWT предложил , используя SerializationException вместо простого исключения. Хотя javadocs для SerializableException предполагает, что Exception тоже подойдет: / Какую версию GWT вы используете?

Запрещены. Начиная с GWT 1.5, исключение реализует Сериализуемый и может быть используется вместо этого класса [SerializableException]

1 голос
/ 28 февраля 2010

В блоге Ломбарди есть обсуждение того, почему точно это происходит в источнике.

Да, Google глупо утверждать, что выбрасывание Exception - это хорошо, когда он генерирует много ненужного JavaScript для подклассов Exception и, в вашем случае, генерирует предупреждения об этих подклассах.

Но это еще одна причина для того, чтобы вызвать более конкретное исключение (которое не имеет устаревшего потомка). Непроверенные исключения на вашем RPC все еще могут обрабатываться UncaughtExceptionHandler.

0 голосов
/ 29 июня 2010

Хотя расширение 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

0 голосов
/ 27 февраля 2010

Вы можете установить лог-уровень компилятора gwt. Похоже, что вы установили свой «предупреждать», установите его на информацию, чтобы избавиться от сообщения. Если вы используете eclipse, сделайте следующее:

  1. клик правой кнопкой мыши по проекту
  2. Google >> GWT Complie
  3. Установите уровень логирования на информацию
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...