title: Weld exception when value for producer annotation is defined
body: <p>I tried to implement solution from another SO question:
  <a href="https://stackoverflow.com/a/10059245/1943765">https://stackoverflow.com/a/10059245/1943765</a> but it is not working in all cases.</p>
  
  <p>When I put this code in CDI bean (bean code is shown on bottom):</p>
  
  <pre><code>@Inject @HttpParam
  private String code; 
  </code></pre>
  
  <p>everything works fine. But when I try to define value for @HttpParam annotation (so, not default one) Weld is unable to start:</p>
  
  <pre><code>@Inject @HttpParam(value="code")
  private String token;
  </code></pre>
  
  <p>I get this exception:</p>
  
  <pre><code>Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type String with qualifiers @HttpParam
    at injection point [BackedAnnotatedField] @Inject @HttpParam private org.test.site.jsf.beans.request.ActivationBean.token
    at org.test.site.jsf.beans.request.ActivationBean.token(ActivationBean.java:0)
  WELD-001475: The following beans match by type, but none have matching qualifiers:
    - Producer Method [String] with qualifiers [@HttpParam @Any] declared as [[BackedAnnotatedMethod] @Produces @HttpParam public org.test.site.cdi.producer.HttpParamProducer.getHttpParameter(InjectionPoint)]
  at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:359)
      at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:281)
      at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:134)
      at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:155)
      at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:518)
      at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
      at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
      at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:63)
      at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:56)
      ... 4 more
  </code></pre>
  
  <p>The code I used is similar to linked SO question.</p>
  
  <p>The custom @HttpParam annotation:</p>
  
  <pre><code>@Qualifier
  @Retention(RUNTIME)
  @Target({METHOD, FIELD, PARAMETER})
  public @interface HttpParam {
      public String value() default "";
  }
  </code></pre>
  
  <p>The annotation value producer:</p>
  
  <pre><code>public class HttpParamProducer {
  
      @Inject
      FacesContext facesContext;
  
      @Produces
      @HttpParam
      String getHttpParameter(InjectionPoint ip) {
          String name = ip.getAnnotated().getAnnotation(HttpParam.class).value();
          if ("".equals(name)) name = ip.getMember().getName();
          return facesContext.getExternalContext()
                  .getRequestParameterMap()
                  .get(name);
      }
  }
  </code></pre>
  
  <p>And CDI bean using it is something like:</p>
  
  <pre><code>@Named("activation")
  @RequestScoped
  public class ActivationBean implements Serializable{
  
      @Inject
      @HttpParam(value="code")
      private String token;
  
      // rest of valid class code
  }
  </code></pre>
  
  <p>Also I am using Tomcat 8 server with Weld Servlet 2.3.1.Final.</p>
  
  <p>So.. what am I doing wrong? :-/</p>