title: Java EE 6 Enterprise Application: Warning "Unsatisfied dependency: no bean matches the injection point" when injecting a bean
body: <p>I have created a fresh new Java EE 6 Enterprise-Application in Netbeans 7.2. So I have three Projects:</p>
  
  <ul>
  <li>EAR</li>
  <li>EJB</li>
  <li>WAR</li>
  </ul>
  
  <p>In the EJB-Project, I have created a simple Bean:</p>
  
  <pre><code>package de.aidaorga.test;
  
  import javax.ejb.LocalBean;   
  import javax.ejb.Stateless;
  
  @Stateless
  @LocalBean
  public class NewSessionBean2343 {
  }
  </code></pre>
  
  <p>In the WAR-Project, I have created a blank beans.xml in the folder "Web Pages\WEB-INF":</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;beans xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"&gt;
  &lt;/beans&gt;
  </code></pre>
  
  <p>And I have also created a simple Servlet:</p>
  
  <pre><code>import de.aidaorga.test.NewSessionBean2343;
  import java.io.IOException;
  import javax.ejb.EJB;
  import javax.inject.Inject;
  import javax.servlet.ServletException;
  import javax.servlet.annotation.WebServlet;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  
  @WebServlet(name = "NewServlet2343", urlPatterns = {"/NewServlet2343"})
  public class NewServlet2343 extends HttpServlet {
      @Inject
      NewSessionBean2343 newSessionBean2343_1;
  
      protected void processRequest(HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {
      }
  
      @Override
      protected void doGet(HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {
          processRequest(request, response);
      }
  
      @Override
      protected void doPost(HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {
          processRequest(request, response);
      }
  
      @Override
      public String getServletInfo() {
          return "Short description";
      }
  }
  </code></pre>
  
  <p>Now, Netbeans shows me a Warning "Unsatisfied dependency: no bean matches the injection point" for the field "newSessionBean2343_1" annotated with "@Inject". </p>
  
  <p>At deploy time, I get the following Excpetion:</p>
  
  <pre><code>Schwerwiegend: Exception while loading the app
  Schwerwiegend: Exception while loading the app : WELD-001408 Unsatisfied dependencies for type [NewSessionBean2343] with qualifiers [@Default] at injection point [[field] @Inject NewServlet2343.newSessionBean2343_1]
  org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [NewSessionBean2343] with qualifiers [@Default] at injection point [[field] @Inject NewServlet2343.newSessionBean2343_1]
  at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:311)
  at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:280)
  at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:143)
  at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:163)
  at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:382)
  at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:367)
  at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:380)
  at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:199)
  at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:128)
  at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:313)
  at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461)
  at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
  at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
  at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
  at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
  at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
  at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
  at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
  at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
  at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
  at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
  at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
  at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
  at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
  at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
  at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
  at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
  at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
  at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
  at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
  at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
  at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
  at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
  at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
  at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
  at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
  at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
  at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
  at java.lang.Thread.run(Thread.java:722)
  </code></pre>
  
  <p>Why do I get this warning and how do I get rid of it?</p>
  
  <p>Thanks for any help.</p>
  
  <p>Markus</p>