在GWT 2.4中客户机上的RequestFactory服务继承



GWT 2.4在客户端引入了服务继承(issue 6234, issue 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);
}

到目前为止,getAllOrderBygetRangeAndFilter工作良好,但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.当我在EgdRequest接口中移动put方法(使用EgdProxy作为参数而不是T)它开始工作,所以我知道我的服务器代码是好的。

有人知道如何正确地实现这个吗?

谢谢!

这是一个GWT bug。见http://code.google.com/p/google-web-toolkit/issues/detail?id=6794

最新更新