Can you isolate the problem into a repeatable self-contained test-case? sam
On Tue, Feb 4, 2014 at 1:39 PM, Rama Krishna Gollapudi <[email protected]>wrote: > Here is my abstract class > > public abstract class DomainResource { > > @Inject > @Assisted > private Domain target; > > @Inject > private LinkHelper helper; > > /** > * Accessor for the domain resource, will return domain information > and links to domain scoped resources > * @param info the uri information > * @return a Map representing the returned json > */ > @GET > @Produces(APPLICATION_JSON) > @SuppressWarnings("nls") > public Map<String, Object> get(@Context final UriInfo info) { > > return "Implement your stuff"; > } > } > > > *Implementaion* > > public class TodoResource extends DomainResource { > @Inject > private Domain domain; > @Inject > private ScopedResourceFactory factory; > @Inject > private LinkHelper helper; > > @GET > @Produces(APPLICATION_JSON) > public Map<String, Object> getTypes(@Context final UriInfo uriInfo) { > return helper.indexMapResponse(); > } > > /** > * @param info uriInfo object used to extract matrix params > * @return the encounters resource > */ > @Path("todos") > public Object getEncounters(@Context final UriInfo info) { > return " implement Your Stuff."; > } > } > > > *Factory :* > public interface ScopedResourceFactory { > > DomainResource domainResource(Domain target); > } > > > > And as per your suggestion i'm binding like this. > install(new FactoryModuleBuilder().implement(DomainResource.class, > TodoResource.class).build( > ScopedResourceFactory.class)); > > But still i'm getting exception. Please find below. > > > > com.rama.util.jaxrs.DomainResource is abstract, not a concrete class. > Unable to create AssistedInject factory. > while locating com.cerner.iaware.util.jaxrs.DomainResource > at > com.rama.util.guice.ScopedResourceFactory.domainResource(ScopedResourceFactory.java:1) > > 1 error > at > com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:448) > at > com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:155) > at > com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107) > at com.google.inject.Guice.createInjector(Guice.java:96) > at com.google.inject.Guice.createInjector(Guice.java:73) > at com.google.inject.Guice.createInjector(Guice.java:62) > at > com.rama.todo.guice.GuiceConfigurationInitializer.getInjector(GuiceConfigurationInitializer.java:49) > at > com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:47) > at > org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939) > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) > at > org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) > at > org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > > > > > > > > > > > > > > > > > > On Tuesday, 4 February 2014 12:09:47 UTC-6, Sam Berlin wrote: > >> The assisted inject >> docs<http://google-guice.googlecode.com/svn/trunk/javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html>describe >> how to do this. The example in the doc reads: >> >> install(new FactoryModuleBuilder() >> .implement(Payment.class, RealPayment.class) >> .build(PaymentFactory.class)); >> >> You'd just substitute Payment for DomainResource, RealPayment for >> TodoResource, and PaymentFactory for your assistedinject factory. >> >> sam >> >> >> On Tue, Feb 4, 2014 at 12:38 PM, Rama Krishna Gollapudi < >> [email protected]> wrote: >> >>> Hello, >>> I'm having a problem of binding an abstract class with it's >>> implementation using Guice . I'm getting the following exception. >>> >>> com.rama.util.jaxrs.DomainResource is abstract, not a concrete class. >>> Unable to create AssistedInject factory. >>> >>> And i did binding like this. bind(DomainResource.class). >>> to(TodoResource.class); >>> >>> DomainResoruce is an abstract class and TodoResource is an >>> implementation. >>> >>> Thanks, >>> Rama. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "google-guice" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> >>> Visit this group at http://groups.google.com/group/google-guice. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "google-guice" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/google-guice. > For more options, visit https://groups.google.com/groups/opt_out. > -- You received this message because you are subscribed to the Google Groups "google-guice" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/google-guice. For more options, visit https://groups.google.com/groups/opt_out.
