23. März 2012 | 3 min lesezeit

T7MP

Möchte man im Projektalltag „eben schnell“ eine Java EE Anwendung auf einem Application Server deployen und testen, so kann sich das t7mp (Tomcat 7) Maven Plugin in Verbindung mit TomEE dem Java EE 6 zertifizierten Web Profile als nützlich erweisen.

Dieser Beitrag soll eine kurze Beschreibung über den Einsatz von TomEE mit dem t7mp Maven Plugin geben. Dazu werden im folgenden Abschnitt die mitgelieferten Bibliotheken aufgeführt. Anschließend wird gezeigt, wie man die eigene Anwendung für t7mp und TomEE konfigurieren muss und wie das Ganze ausgeführt werden kann. Dieser Beitrag wird durch ein Fazit abgeschlossen.

Unterstützung:

Generell sind hier zwei Versionen zu unterscheiden. Die erste maßgebende Version ist das Java EE 6 zertifizierte Web Profile TomEE, welches folgende Komponenten mitbringt:

  • CDI – Apache OpenWebBeans
  • EJB – Apache OpenEJB
  • JPA – Apache OpenJPA
  • JSF – Apache MyFaces
  • JSP – Apache Tomcat
  • JSTL – Apache Tomcat
  • JTA – Apache Geronimo Transaction
  • Servlet – Apache Tomcat
  • Javamail – Apache Geronimo JavaMail
  • Bean Validation – Apache Bean Validation

Die zweite nicht zertifizierte Variante TomEE Plus bietet zusätzlich folgende Komponenten:

  • JAX-RS – Apache CXF
  • JAX-WS – Apache CXF
  • JMS – Apache ActiveMQ
  • Connector – Apache Geronimo Connector

Maven Konfiguration:

An dieser Stelle sei allerdings anzumerken, dass hier die Snapshot Version der aktuellen Beta 2 von TomEE verwendet wird und somit noch nicht gänzlich dem Final Release entspricht. Um die hier verwendete Version nutzen zu können, muss zusätzlich das Apache Snapshot Repository in das bestehende Maven Projekt über folgende Konfiguration hinzugefügt werden:

Wer die Erweiterungen von TomEE Plus benötigt, der kann statt dem „tomee-webapp“ Artefakt folgendes Artefakt einbinde:

TomEE legt den Fokus klar auf die Einfachheit, was konkret bedeutet, dass die bereit gestellten Komponenten durch die Einhaltung des Paradigmas „Conventions over Configuration“ beim Hochfahren des Servers mit Default Werten bereits vorkonfiguriert und aktiviert werden. Dabei benötigt es keiner weiteren Konfiguration auf der Seite der Webapplikation. Es kann also direkt mit der Entwicklung begonnen werden. Für besondere Anforderungen können entsprechende Konfigurations Dateien angelegt werden, welche die bestehenden entsprechend überschreiben.

Ausführung:

Mit dem Kommandozeilenaufruf „mvn t7:run“ wird der TomEE Server gestartet und das zuvor bspw. mit „mvn package“ gebaute Web Artefakt deployed. Mit „mvn t7:run-forked“ kann TomEE in einer separaten JVM ausgeführt werden. Die Befehle „mvn t7:stop“ bzw. „mvn t7:stop-forked“ fahren den laufenden Server entsprechend runter. Im „Target“ Ordner wird ein Unterordner „tomcat“ erstellt, welches der gewohnten Tomcat Ordnerstruktur entspricht. Hier können beispielsweise zur Laufzeit die Log Dateien analysiert werden.

Fazit:

Das t7mp Plugin ermöglicht im Zusammenspiel mit TomEE das schnelle und problemlose Testen einer Java EE Anwendung auf einem vollwertigen Application Server. Dadurch kann man sich direkt auf die Entwicklung konzentrieren und recht früh erste sichtbare Ergebnisse erzielen. Was bei der standalone Variante von TomEE sowie bei der Nutzung des t7mp Plugins etwas merkwürdig oder evtl. sogar negativ erscheint, ist die Tatsache, dass der komplette Java EE Stack über eine separate Web Applikation verfügbar gemacht wird, statt wie erwartet über die Laufzeitumgebung. Generell ist es nicht verkehrt, die eigene Anwendung auf mehreren Application Servern, welche unterschiedliche Implementierungen der Java EE Standards mitbringen, zu testen. Dadurch kann man im Zweifelsfall auf unerwartete Nebeneffekte aber auch ggf. auf besondere Kundenanforderungen reagieren. Hier hilft auch die Unterstützung von Arquillian durch OpenEJB, so dass der TomEE Container für einfache Unit Tests verwendet werden kann.

Eine kleine Beispielanwendung zur Verwendung von TomEE mit dem t7mp Plugin kann hier heruntergeladen und getestet werden.


Keine Kommentare

Kontakt

OPEN KNOWLEDGE GmbH

Standort Oldenburg:
Poststraße 1, 26122 Oldenburg

Standort Essen:
II. Hagen 7, 45127 Essen