TomEE JEE Server

Introductie

TomEE is een JEE6 (gecertificeerd) server platform gebaseerd op de bekende TomCat Servlet container.  Het is geschikt voor ontwikkel- en testdoeleinden vanwege het lichte karakter, het start bijvoorbeeld snel op binnen de Eclipse omgeving.

TomEE komt van open source leverancier Apache :
tomee.apache.org/apache-tomee.html.
Er is TomEE en TomEE+. Die laatste heb je nodig als je Webservices wil gebruiken.
TomCat biedt standaard support voor Servlets, JSP, en JSTL.
De TomEE basis (webprofile) versie voegt hier de volgende componenten aan toe:

  • CDI – Apache
  • EJB – Apache
  • JPA – Apache
  • JSF – Apache MyFaces
  • JTA – Apache Geronimo
  • Javamail – Apache Geronimo
  • Bean Validation – Apache BVal

De uitgebreide TomEE+ versie biedt met name als extra’s de webservices

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

Installatie

TomEE wordt gedownload van de apache site tomee.apache.org/apache-tomee.html.en op de schijf uitgepakt. Daarna kan de server worden gestart met de daarvoor bestemde scriptfiles in de /bin subdirectory onder de installatie root:

startup.bat (startup.sh) en shutdown.bat (shutdown.sh).

Om TomEE als Windows service te installeren of de-installeren worden de volgende scripts gebruikt:

service.install.as.admin.bat
service.remove.as.admin.bat

Eclipse Configuratie en Gebruik

TomEE wordt geconfigureerd in Eclipse onder Windows -> Preferences, via property Server, sub-property Runtime Environments. Hier kan een nieuwe omgeving worden toegevoegd, waarbij uit een selectie van mogelijke adapters zoals TomCat, JBoss, GlassFish etc. kan worden gekozen. Onder de map “Apache” vinden we TomCat v7.0 die voor TomEE kan worden gebruikt. Voor de toegevoegde TomEE runtime kan de TomEE installatie directory worden ingesteld.

Om de TomEE server vanuit Eclipse te kunnen starten wordt deze als Server toegevoegd in de Server view. Daar kan de TomCat server worden geconfigureerd en kunnen projecten/applicaties aan de server worden toegevoegd. Ook kunnen in deze view de servers worden gestart en gestopt en een publish van een project worden uitgevoerd.

De TomEE server kan op verschillende manieren worden opgestart: binnen de actuele TomEE installatie zelf, of binnen een Eclipse interne setting (Use Workspace metadata).
In het eerste geval worden de config bestanden van de TomEE installatie zelf aangepast door Eclipse. In het tweede geval wordt gebruik gemaakt van interne Eclipse bestanden, welke zijn opgeslagen in

[EclipseWorkspace]\.metadata\.plugins\org.eclipse.wst.server.core.

Een project maakt voor ontwikkeling gebruik van de TomEE runtime libraries door in de project property “Java Class Path” in de dialog onder de tab libraries , de knop “Add Libraries” te kiezen, vervolgens de categorie “Server Runtime” en dan de nieuwe TomEE runtime te selecteren.

Maven Project Configuratie

Om voor TomEE de JEE apps met Maven te kunnen ontwikkelen is Maven pom.xml inhoud nodig. Op de TomEE site staan veel voorbeelden met kant en klare pom.xml inhoud. Daar kun je gebruik van maken en aanvullen waar nodig voor extra zaken zoals bijv. database drivers.Je moet goed opletten welke scope je instelt voor de verschillende onderdelen : bijv. alle TomEE onderdelen op “provided” , JUnit op “test”, en alles wat daadwerkelijk op TomEE gedeployed moet worden zonder scope (= “compiled”).

Hieronder een veel gebruikte opzet waarin verschillende JEE onderdelen met scope test zijn toegevoegd t.b.v. de Unit tests.

<dependency>
   <groupId>javax.servlet</
   <artifactId>javax.servlet-api</artifactId>
   <version>x.x.x</version>
   <scope>test</scope>
</dependency>
<dependency>
   <groupId>org.apache.openejb</groupId>
   <artifactId>openejb-core</artifactId>
   <version>x.x.x</version>
   <scope>test</scope>
</dependency>
<dependency>
   <groupId>org.apache.openejb</groupId>
   <artifactId>openejb-cxf-rs</artifactId>
   <version>x.x.x</version>
   <scope>test</scope>
</dependency>
<dependency>
   <groupId>commons-httpclient</groupId>
   <artifactId>commons-httpclient</artifactId>
   <version>x.x.x</version>
   <scope>test</scope>
</dependency>
<dependency>
   <groupId>org.apache.myfaces.core</groupId>
   <artifactId>myfaces-api</artifactId>
   <version>x.x.x</version>
   <scope>provided</scope>
</dependency>
<dependency>
   <groupId>org.apache.myfaces.core</groupId>
   <artifactId>myfaces-impl</artifactId>
   <version>x.x.x</version>
   <scope>provided</scope>
</dependency>

Database configuratie

De databases worden als resources geconfigureerd in het bestand openejb.xml.
De locatie van dit bestand is de TomEE/TomCat config directory : [TomEE Installdir]\conf.

Als TomEE voor testdoeleinden wordt gebruikt in de Eclipse omgeving kan dit bestand ook worden geplaatst in de
Eclipse server map van de TomEE server waar de applicaties worden gedeployed.

Hieronder voorbeelden van de configuratie van een HSQLDB en een MySQL database.
Er zijn 2 soorten configuraties per database opgenomen, de ene met JtaManaged true en de ander false.
JtaManaged true wordt gebruiktals de transacties door de container worden gemanaged.
JtaManaged false wordt gebruikt als de transacties niet door de container maar door de applicatie zelf worden gemanaged.

<Resource id="employeedbh" type="DataSource">
  JdbcDriver org.hsqldb.jdbcDriver
  JdbcUrl jdbc:hsqldb:mem:employeedb
  UserName sa
  Password
  JtaManaged true
</Resource>

<Resource id="employeedbhNONJTA" type="DataSource">
  JdbcDriver org.hsqldb.jdbcDriver
  JdbcUrl jdbc:hsqldb:mem:employeedb
  UserName sa
  Password
  JtaManaged false
</Resource>

<Resource id="employeedb" type="DataSource">
  JdbcDriver com.mysql.jdbc.Driver
  JdbcUrl jdbc:mysql://localhost:3306/employeedb
  UserName root
  Password admin
  JtaManaged true
</Resource>

<Resource id="employeedbNONJTA" type="DataSource">
  JdbcDriver com.mysql.jdbc.Driver
  JdbcUrl jdbc:mysql://localhost:3306/employeedb
  UserName root
  Password admin
  JtaManaged false
</Resource>

EMail configuratie

Al er gebruik wordt gemaakt van JavaMail dan moet de smtp mailserver als resource geconfigureerd worden.
Dat kan, net als de database resources, in het bestand openejb.xml.
De locatie van dit bestand is de TomEE/TomCat config directory : [TomEE Installdir]\conf.

Hieronder voorbeelden van de configuratie van Gmail als smtp email server. Gmail kan voor testdoeleinden als mailserver worden toegepast. Uiteraard moeten de email en password correct worden ingesteld.

<Resource id="GMailTLS" type="javax.mail.Session">
   mail.transport.protocol=smtp
   mail.smtp.host=smtp.gmail.com
   mail.smtp.port=587
   mail.smtp.starttls.enable=true
   mail.smtp.auth=true
   mail.smtp.user=user@gmail.com
   mail.smtp.password=secret
   mail.smtp.from=user@gmail.com
   debug=true
</Resource>

<Resource id="GMailSSL" type="javax.mail.Session">
   mail.transport.protocol=smtp;
   mail.smtp.host=smtp.gmail.com
   mail.smtp.port=465
   mail.smtp.socketFactory.port=465
   mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
   mail.smtp.auth=true
   mail.smtp.user=user@gmail.com
   mail.smtp.password=secret
   mail.smtp.from=user@gmail.com
   debug=true
</Resource>

This entry was posted in JEE, JEE Servers, Middleware and tagged , , , . Bookmark the permalink.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd.

De volgende HTML tags en attributen zijn toegestaan: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>