Поддерживаются ли интерфейсы, расширяющие RequestContext, с GWT RequestFactory? - PullRequest
1 голос
/ 28 августа 2011

Многие из моих услуг просто выставлены DAO. Поэтому я создал интерфейс для этих сервисов:

public interface DAORequestContext<T extends SRSProxyBase> extends RequestContext {
    Request<T> find(Long id);

    Request<T> load(Long id);

    Request<T> save(T id);
}

Однако, когда расширить этот интерфейс (без аннотаций в моей RequestFactory):

public interface SafeRideRequestFactory extends RequestFactory {
    public UserService userService();

    @Service(value = UserDAO.class, locator = DAOServiceLocator.class)
    interface UserService extends DAORequestContext<SRSUserProxy> { }
}

Я получаю исключения во время выполнения:

[ERROR] org.saferide.shared.service.DAORequestContext has no mapping to a domain type (e.g. @ProxyFor or @Service)
[ERROR] The type org.saferide.shared.service.DAORequestContext must be annotated with a @Service or @ServiceName annotation
[ERROR] The RequestContext type org.saferide.shared.service.DAORequestContext did not pass validation
[ERROR] Unexpected error
com.google.web.bindery.requestfactory.server.UnexpectedException: The RequestContext type org.saferide.shared.service.DAORequestContext did not pass validation

Разрешены только прямые потомки RequestContext? Кто-нибудь сталкивался с этим?

1 Ответ

1 голос
/ 28 августа 2011

См. http://code.google.com/p/google-web-toolkit/issues/detail?id=5807 и связанные http://code.google.com/p/google-web-toolkit/issues/detail?id=6234 и http://code.google.com/p/google-web-toolkit/issues/detail?id=6035

Это действительно зависит от версии GWT, которую вы используете, и все еще улучшается. Вам лучше использовать GWT 2.4, когда он будет выпущен (где, кроме того, эта «проверка» будет выполняться во время компиляции, а не во время выполнения)

...