title: Guice, JerseyServletModule, missing dependency for method, REST service configuration
body: <p>My Guice configuration looks something like:</p>
  
  <pre><code>public class SocialServiceGuiceConfig extends GuiceServletContextListener {
     @Override
     protected Injector getInjector() {
         final Module [] modules = {
                 new JerseyServletModule() {
                     @Override
                     protected void configureServlets() {
                         bind( GraphApi.class );
  
                         bind( SocialUncheckedExceptionMapper.class ).in( Singleton.class );
                         bind( SocialUnhandledExceptionMapper.class ).in( Singleton.class );
  
                         serve( "/*" ).with(
                             GuiceContainer.class );
                     }
                 },
         };
  
         return Guice.createInjector( modules );
     } 
  }
  </code></pre>
  
  <p>My API definition looks something like this:</p>
  
  <pre><code>@Path( "/{" + BUSINESS_CUSTOMER_PARAMETER + "}" )
  public BusinessCustomerApi businessCustomerAndContext(
          @PathParam( BUSINESS_CUSTOMER_PARAMETER ) final BusinessCustomerPathParam businessCustomerPathParam,
          @QueryParam( LOCALE_PARAMETER ) final String locale) {
  </code></pre>
  
  <p>The exception I am getting in my logs:</p>
  
  <pre><code>INFO: Binding com.business.social.next.service.api.v1.GraphApi to GuiceManagedComponentProvider with the scope "PerRequest"
  Aug 13, 2012 9:20:05 PM com.sun.jersey.spi.inject.Errors processErrorMessages
  SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
    WARNING: A HTTP GET method, public void com.business.social.next.service.api.v1.GraphApi.get(), MUST return a non-void type.
    SEVERE: Missing dependency for method public com.business.social.next.service.api.v1.BusinessCustomerApi com.business.social.next.service.api.v1.    GraphApi.graphRequestContext(com.business.social.next.graph.protocol.BusinessCustomer,java.lang.String) at parameter at index 0
  Aug 13, 2012 9:20:05 PM org.apache.catalina.core.StandardContext filterStart
  SEVERE: Exception starting filter Guice Filter
  com.sun.jersey.spi.inject.Errors$ErrorMessagesException
      at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
      at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:136)
      at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:199)
      at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:771)
      at com.sun.jersey.guice.spi.container.servlet.GuiceContainer.initiate(GuiceContainer.java:121)
      at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:318)
      at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:609)
      at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:210)
      at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:373)
      at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:556)
      at javax.servlet.GenericServlet.init(GenericServlet.java:212)
      at com.google.inject.servlet.ServletDefinition.init(ServletDefinition.java:117)
      at com.google.inject.servlet.ManagedServletPipeline.init(ManagedServletPipeline.java:82)
      at com.google.inject.servlet.ManagedFilterPipeline.initPipeline(ManagedFilterPipeline.java:102)
      at com.google.inject.servlet.GuiceFilter.init(GuiceFilter.java:172)
      at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
      at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
      at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:108)
      at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
      at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
      at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
      at org.apache.catalina.core.StandardService.start(StandardService.java:448)
      at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
  Aug 13, 2012 9:20:05 PM org.apache.catalina.core.StandardContext start
  SEVERE: Error filterStart
  Aug 13, 2012 9:20:05 PM org.apache.catalina.core.StandardContext start
  SEVERE: Context [] startup failed due to previous errors
  </code></pre>
  
  <p>Why is this happening?  Having a hard time finding information online and can't figure out what path to poke around.</p>