Can not instantiate a bean from simpe cdi webapp.
servlet
@WebServlet(name = "greetingServlet", urlPatterns = {"/sayHello"})
public class GreetingServlet extends HttpServlet {
private static final long serialVersionUID = 2280890757609124481L;
@Inject
@Greetings(GreetingType.HELLO)
private GreetingCard greetingCard;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>" + greetingCard.sayHello() + "</h1>");
}
}
pom.xml dependencies
<dependencies>
<dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet</artifactId>
<version>1.1.10.Final</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.1.7</version>
</dependency>
</dependencies>
I get the error:
SEVERE: Servlet.service() for servlet [greetingServlet] in context with path [/CDI_prog] threw exception
java.lang.NullPointerException
at com.javacodegeeks.snippets.enterprise.cdibeans.servlet.GreetingServlet.doGet(GreetingServlet.java:37) //`greetingCard.sayHello()`
...
There are no erors in Eclipse projects. I think the problem with dependencies so Tomcat can not detect CDI. Are some dependencies missed?