This post will cover installing Apache TomEE on CentOS 6.x
TomEE is a certified implementation of the Java EE 6 Web Profile.
What is most interesting is that it is build on top of Tomcat 7. Literally. Nothing has been removed from Tomcat 7, only added to.
Installation is quite identical to Tomcat 7 and you can even deploy TomEE as a WAR from within an existing Tomcat 7.x installation.
I wasn't keen on this option as the overall directory structure, jar locations, conf files, etc...are different from the apache-tomee-1.0.0-webprofile package layout, which we will be installing below.
Conversely, it could be an option to consider as apache-tomee-1.0.0-webprofile is packaged with Tomcat 7.0.27 (current stable is 7.0.29).
There is also a TomEE Plus package with additional features, but this is not Java EE6 certified. Installation of TomEE Plus is identical to Web Profile below, just change the file names.
Below, we'll install TomEE and configure it to run as a service. To see how to run TomEE as an unprivileged user, Manager configuration, run on port 80, etc, etc...please see my Tomcat 7 Installation post
To begin, we'll need to install the Java Development Kit (JDK) 6
You can download the latest JDK here: http://www.oracle.com/technetwork/java/javase/downloads/index.html
We'll install the latest JDK, which is JDK 6, Update 33.
For CentOS 64 bit, I'll be using jdk-6u33-linux-x64.bin (for 32 bit, use jdk-6u33-linux-i586.bin)
Download jdk-6u33-linux-x64.bin and save it the /opt directory.
Creating a new directory /usr/java:
Change to the /usr/java directory we created
Execute the bin file using 'sh /opt/jdk-6u33-linux-x64.bin' (if you saved jdk-6u33-linux-x64.bin to a location other than /opt, adjust accordingly)
This will create the directory /usr/java/jdk1.6.0_33. This will be our JAVA_HOME.
We can now set JAVA_HOME and put Java into the path of our users.
To set the JAVA_HOME, add below to the .bash_profile of root (you can do the same for user tomcat - or any other user - later if you decide to run it under a non-privileged user).
Once you have added the above to .bash_profile, issue '. ~/.bash_profile' as shown below. Or you can simply log out and log back in.
Verify that Java is now in your path by issuing 'echo $JAVA_HOME'
You can also issue 'java -version' to check that Java is available to your user.
We will install TomEE under /usr/share.
Switch to the /usr/share directory:
and save it to /usr/share
unpack the file using tar -xzf:
This will be the home directory for TomEE
Create a simple Start/Stop/Restart for TomEE.
Change to the /etc/init.d directory and create a script called 'tomee' as shown below.
Make the script executable:
Start TomEE:
Stop TomEE:
By default, the TomEE Console is restricted via a valve to 127.0.0.1 (localhost).
You can remove or change this via the context.xml at:
/usr/share/apache-tomee-webprofile-1.0.0/webapps/tomee/META-INF/context.xml
As with Tomcat 7, piping (|) is used in place of commas.
Below is a quick look at the TomEE Console screens and it's tabs:
TomEE Console Welcome Page:
![TomEE Console]()
TomEE Console Test Page:
![TomEE Console Test]()
TomEE Console JNDI Page:
![TomEE Console JNDI]()
TomEE Console EJB Page:
![TomEE Console EJB]()
TomEE Console Class Page:
![TomEE Console Class]()
TomEE Console Invoke Page:
![TomEE Console Invoke]()
To see how to run TomEE as an unprivileged user, Manager configuration, run on port 80, etc... please see my Tomcat 7 Installation postRelated Tomcat Posts
Learn More About Apache Tomcat 7Apache Tomcat FoundationTomcat 7
![Tomcat 7 Hosting]()
TomEE is a certified implementation of the Java EE 6 Web Profile.
What is most interesting is that it is build on top of Tomcat 7. Literally. Nothing has been removed from Tomcat 7, only added to.
Installation is quite identical to Tomcat 7 and you can even deploy TomEE as a WAR from within an existing Tomcat 7.x installation.
I wasn't keen on this option as the overall directory structure, jar locations, conf files, etc...are different from the apache-tomee-1.0.0-webprofile package layout, which we will be installing below.
Conversely, it could be an option to consider as apache-tomee-1.0.0-webprofile is packaged with Tomcat 7.0.27 (current stable is 7.0.29).
There is also a TomEE Plus package with additional features, but this is not Java EE6 certified. Installation of TomEE Plus is identical to Web Profile below, just change the file names.
Below, we'll install TomEE and configure it to run as a service. To see how to run TomEE as an unprivileged user, Manager configuration, run on port 80, etc, etc...please see my Tomcat 7 Installation post
To begin, we'll need to install the Java Development Kit (JDK) 6
Step 1: Install JDK 1.6 latest
You can download the latest JDK here: http://www.oracle.com/technetwork/java/javase/downloads/index.html
We'll install the latest JDK, which is JDK 6, Update 33.
For CentOS 64 bit, I'll be using jdk-6u33-linux-x64.bin (for 32 bit, use jdk-6u33-linux-i586.bin)
Download jdk-6u33-linux-x64.bin and save it the /opt directory.
[root@demo3 opt]# ls jdk-6u33-linux-x64.bin
Creating a new directory /usr/java:
[root@demo3 opt ]# mkdir /usr/java
Change to the /usr/java directory we created
[root@demo3 opt ]# cd /usr/java [root@demo3 java ]#
Execute the bin file using 'sh /opt/jdk-6u33-linux-x64.bin' (if you saved jdk-6u33-linux-x64.bin to a location other than /opt, adjust accordingly)
[root@demo3 java]# sh /opt/jdk-6u33-linux-x64.bin
This will create the directory /usr/java/jdk1.6.0_33. This will be our JAVA_HOME.
We can now set JAVA_HOME and put Java into the path of our users.
To set the JAVA_HOME, add below to the .bash_profile of root (you can do the same for user tomcat - or any other user - later if you decide to run it under a non-privileged user).
JAVA_HOME=/usr/java/jdk1.6.0_33 export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH
Once you have added the above to .bash_profile, issue '. ~/.bash_profile' as shown below. Or you can simply log out and log back in.
[root@demo3 ~]# . ~/.bash_profile
Verify that Java is now in your path by issuing 'echo $JAVA_HOME'
[root@demo3 ~]# echo $JAVA_HOME /usr/java/jdk1.6.0_33
You can also issue 'java -version' to check that Java is available to your user.
[root@demo3 ~]# java -version java version "1.6.0_33" Java(TM) SE Runtime Environment (build 1.6.0_33-b04) Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)
Step 2: Download and Unpack Apache TomEE 1.0.0 (or latest)
We will install TomEE under /usr/share.
Switch to the /usr/share directory:
[root@demo3 ~]# cd /usr/share [root@demo3 share ]#Download apache-tomee-1.0.0-webprofile.tar.gz (or the latest version) here
and save it to /usr/share
unpack the file using tar -xzf:
[root@demo3 share ]# tar -xzf apache-tomee-1.0.0-webprofile.tar.gzThis will create the directory /usr/share/apache-tomee-webprofile-1.0.0
This will be the home directory for TomEE
Step 3: Configure TomEE to Run as a Service.
Create a simple Start/Stop/Restart for TomEE.
Change to the /etc/init.d directory and create a script called 'tomee' as shown below.
[root@demo3 share]# cd /etc/init.d [root@demo3 init.d]# vi tomeeAnd here is the script we will use.
#!/bin/bash # description: TomEE Start Stop Restart # processname: tomee # chkconfig: 234 20 80 JAVA_HOME=/usr/java/jdk1.6.0_33 export JAVA_HOME PATH=$JAVA_HOME/bin:$PATH export PATH CATALINA_HOME=apache-tomee-webprofile-1.0.0 case $1 in start) sh $CATALINA_HOME/bin/startup.sh ;; stop) sh $CATALINA_HOME/bin/shutdown.sh ;; restart) sh $CATALINA_HOME/bin/shutdown.sh sh $CATALINA_HOME/bin/startup.sh ;; esac exit 0You can adjust your script according to your needs.
Make the script executable:
[root@demo3 init.d]# chmod 755 tomeeAdd to chkconfig with run levels 234 (or whatever you prefer)
[root@demo3 init.d]# chkconfig --add tomee [root@demo3 init.d]# chkconfig --level 234 tomee onVerify it:
[root@demo3 init.d]# chkconfig --list tomee tomee 0:off 1:off 2:on 3:on 4:on 5:off 6:offTest the script.
Start TomEE:
[root@demo3 ~]# service tomee start Using CATALINA_BASE: /usr/share/apache-tomee-webprofile-1.0.0 Using CATALINA_HOME: /usr/share/apache-tomee-webprofile-1.0.0 Using CATALINA_TMPDIR: /usr/share/apache-tomee-webprofile-1.0.0/temp Using JRE_HOME: /usr/java/jdk1.6.0_33 Using CLASSPATH: /usr/share/apache-tomee-webprofile-1.0.0/bin/bootstrap.jar:/usr/share/apache-tomee-webprofile-1.0.0/bin/tomcat-juli.jarCheck if the Tomcat Manager page is visible at http://yourIPaddress:8080. If not check your firewall and logs.
Stop TomEE:
[root@demo3 ~]# service tomee stop Using CATALINA_BASE: /usr/share/apache-tomee-webprofile-1.0.0 Using CATALINA_HOME: /usr/share/apache-tomee-webprofile-1.0.0 Using CATALINA_TMPDIR: /usr/share/apache-tomee-webprofile-1.0.0/temp Using JRE_HOME: /usr/java/jdk1.6.0_33 Using CLASSPATH: /usr/share/apache-tomee-webprofile-1.0.0/bin/bootstrap.jar:/usr/share/apache-tomee-webprofile-1.0.0/bin/tomcat-juli.jarReview the catalina.out log located at /usr/share/apache-tomee-webprofile-1.0.0/logs/catalina.out and check for any errors.
[root@demo3 init.d]# more /usr/share/apache-tomee-webprofile-1.0.0/logs/catalina.out
Step 4 (Optional): Configure Remote Access to TomEE Console
By default, the TomEE Console is restricted via a valve to 127.0.0.1 (localhost).
You can remove or change this via the context.xml at:
/usr/share/apache-tomee-webprofile-1.0.0/webapps/tomee/META-INF/context.xml
<Context><Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1|0:0:0:0:0:0:0:1(%.*)?|^::1$" deny=""/></Context>
As with Tomcat 7, piping (|) is used in place of commas.
Below is a quick look at the TomEE Console screens and it's tabs:
TomEE Console Welcome Page:

TomEE Console Test Page:

TomEE Console JNDI Page:

TomEE Console EJB Page:

TomEE Console Class Page:

TomEE Console Invoke Page:

To see how to run TomEE as an unprivileged user, Manager configuration, run on port 80, etc... please see my Tomcat 7 Installation postRelated Tomcat Posts
Learn More About Apache Tomcat 7Apache Tomcat FoundationTomcat 7
