CDI im Tomcat verwenden

Veröffentlicht in: Java, JEE 6 | 0

Die einfachste Art die Java EE 6 Funktionalität CDI einsetzten zu können, ist die Verwendung eines vollwertigen Application Servers wie z.B. Glassfish in der aktuellen Version 3.1. Um CDI in einem Tomcat 7 verwenden zu können, ist etwas mehr Aufwand vonnöten, da dieser außer der Servlet API 3.0 keine Java EE 6 Komponenten von Haus aus mitliefert.

Um in einer Web-Applikation die innerhalb eines Tomcats läuft CDI bzw. Wend verwenden zu können, reicht ein einziges JAR-Archiv aus: weld-servlet.jar

Dieses kann bequem per Maven in einer Web-Applikation integriert werden:

<dependency>
<groupId>org.jboss.weld.servlet</groupId>
<artifactId>weld-servlet</artifactId>
<version>1.0.1-Final</version>
</dependency>

Zusätzlich wird noch folgender Eintrag in der web.xml des jeweiligen Web-Projektes benötigt:

<listener>
<listener-class>
org.jboss.weld.environment.servlet.Listener
</listener-class>
</listener>

Leider verwendet der Tomcat 6 die Servlet API 2.5, so dass hier nicht so einfach die Vorteile der Servlet API 3.0 zum Einsatz kommen können. CDI selber kann natürlich dennoch verwendet werden, hier kommt es nicht zu Konflikten mit den Libraries des Tomcats.