2

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);
}

これまでのところ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 を使用することです。インターフェイスでputメソッドを移動すると ( T の代わりにパラメーターとして使用して)、動作するので、サーバー コードが正常であることはわかっています。EgdRequestEgdProxy

これを正しく実装する方法を知っている人はいますか?

ありがとう!

4

1 に答える 1

5

これは GWT のバグです。http://code.google.com/p/google-web-toolkit/issues/detail?id=6794をご覧ください

于 2011-09-16T15:18:56.033 に答える