Служба RequestFactory наследование на клиенте в GWT 2.4 - PullRequest
2 голосов
/ 15 сентября 2011

GWT 2.4 приносит клиенту наследование сервиса ( выпуск 6234 , выпуск 6035 ).

Я долго ждал этого будущего,поскольку это экономит много дублированного кода на клиенте.Я начал его реализовывать, но так со смешанным успехом.

Это мой код:

public interface BaseEntityRequest<T>
{
    Request<Void> put(T entity);
    Request<List<T>> getAllOrderBy(String propertyName);
    Request<List<T>> getRangeAndFilter(int limit,int offset, QueryInfoProxy queryInfo);
}

@Service(value = EgdDao.class, locator = DaoServiceLocator.class)
public interface EgdRequest extends RequestContext, BaseEntityRequest<EgdProxy>
{
    Request<Void> exportToExcel(QueryInfoProxy queryInfo, String userName);
}

Пока getAllOrderBy и getRangeAndFilter работают нормально, но put(T entity)не.

Я получаю следующую ошибку в консоли:

[ERROR] Unexpected error
java.util.NoSuchElementException

и это возвращается в сообщении onFailure ServerFailure:

Error 500 INTERNAL_SERVER_ERROR
HTTP ERROR 500
Problem accessing /gwtRequest. Reason:
INTERNAL_SERVER_ERROR

Единственная причинаЯ могу видеть, что метод put не работает, когда другие работают, заключается в том, что он использует универсальный параметр T. Когда я перемещаю метод put в интерфейсе EgdRequest (используя EgdProxy какпараметр вместо T) он начинает работать, поэтому я знаю, что мой серверный код в порядке.

Кто-нибудь знает, как правильно это реализовать?

Спасибо!

1 Ответ

5 голосов
/ 16 сентября 2011
...