5

ValueProxyユーザーが実行している検索に関する基本的な情報を保持する を作成しようとしています。何らかの理由で GWT はそれを EntityProxy にしたいのですが、その理由がわかりません (また、このクラスが EntityProxy であることも意味がありません)。

// FilterProxy extends ValueProxy
@ProxyFor(DayFilter.class)
public interface DayFilterProxy extends FilterProxy {

    void setFilterValue(Date day);
    Date getFilterValue();
}

public class DayFilter extends Filter {

    public DayFilter() {
        setOperator(FilterOperator.GREATER_THAN_OR_EQUAL);
        setField("dateRequested");
    }

    public void setFilterValue(Date date) {
        this.value = date;
    }

    public Date getFilterValue() {
        return value;
    }
}

public interface PaginationRequest<T> extends RequestContext {

    Request<List<T>> paginate(int offset, int limit, String sortColumn,
            boolean isSortAscending, List<FilterProxy> filters);

    Request<Integer> count(List<FilterProxy> filters);
}

@Service(value=TripService.class, locator=SchedgyServiceLocator.class)
public interface TripRequest extends PaginationRequest<TripProxy> {

    Request<TripProxy> save(TripProxy trip);
}

これをサーバーに送り返すアクティビティ内:

// Request is a TripRequest
DayFilterProxy filter = request.create(DayFilterProxy.class);

これにより、次の結果が得られます。

java.lang.AssertionError: com.schedgy.trip.dao.filter.trip.proxy.DayFilterProxy is not an EntityProxy type
    at com.google.web.bindery.requestfactory.shared.impl.IdFactory.asEntityProxy(IdFactory.java:66)
    at com.google.web.bindery.requestfactory.shared.impl.IdFactory.createId(IdFactory.java:229)
    at com.google.web.bindery.requestfactory.shared.impl.IdFactory.allocateId(IdFactory.java:41)
    at com.google.web.bindery.requestfactory.shared.impl.AbstractRequestContext.create(AbstractRequestContext.java:478)
    at com.schedgy.trip.client.activity.TripsActivity.getFilters(TripsActivity.java:56)

何か案は?ValueProxies がコードの別の場所で動作しているため、見落としていることは明らかです。

4

1 に答える 1

10

DayFilterProxyがRequestContextからまったく参照されていない可能性がありますか?

于 2011-09-01T16:06:00.340 に答える