I am building an application which uses, GWT (2.4), App Engine (1.5.4), and Objectify (3.0). As my application is evolving, I am adding more domain classes and this is forcing me to write more services, which more or less look like same. for example they all should have code for CRUD operations. So I tried to create Generic services which look like
//Client side
@RemoteServiceRelativePath("Generic")
public interface GenericService<T extends BaseDomain> extends RemoteService {
....
}
public interface GenericServiceAsync<T extends BaseDomain> {
...
}
//ServerSide
@SuppressWarnings("serial")
public class GenericServiceImpl<T extends BaseDomain> extends
RemoteServiceServlet implements GenericService<T> {
//implementation
}
When I am trying to create instance of it on client side using
//Domain extends BaseDomain
public static final GenericServiceAsync<Domain> domainService =
GWT.create(GenericService.class);
I am getting the following exception
java.lang.RuntimeException: Deferred binding failed for 'com.planner.client.GenericService' (did you forget to inherit a required module?)
I am not sure what I a doing wrong, Would appreciate any pointers, and/or alternative approaches.