Generics in GWT -
i building application uses, gwt (2.4), app engine (1.5.4), , objectify (3.0). application evolving, adding more domain classes , forcing me write more services, more or less same. example should have code crud operations. tried create generic services
//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 trying create instance of on client side using
//domain extends basedomain public static final genericserviceasync<domain> domainservice = gwt.create(genericservice.class);
i getting following exception
java.lang.runtimeexception: deferred binding failed 'com.planner.client.genericservice' (did forget inherit required module?)
i not sure doing wrong, appreciate pointers, and/or alternative approaches.
i don't think issue comes using generics in server side service implementations, missconfiguring services. check following:
that have proper genericserviceasync interface created genericservice
you have proper server side implementation of genericservice implements interface , extends gwt's remoteserviceservlet class
that in web.xml file have configure service servlet expecially servlet-mapping tag should have value of :
<servlet-mapping> <servlet-name>genericserviceservlet</servlet-name> <url-pattern>/[gwt-module-name]/generic</url-pattern>
where [gwt-module-name] name you've given gwt project in gwt descriptor file (the 1 called xxx.gwt.xml, if module tag has rename-to attribute, value of attribute yoru gwt-module-name) , "generic" value used in @remoteservicerelativepath("generic")
also, side note, if want make generic service treats domain objects basedomain types should have methods take arguments type, no need use generics it's sub-type well, polymorphism takes care of .
Comments
Post a Comment