How to setup Tomcat 9 on Java OpenJDK 11 and Apache proxy_ajp on Ubuntu 18.04 LTS - jbilander/HowTos GitHub Wiki

first become root:
jbilander@zeus:~$ sudo -s
[sudo] password for jbilander:
root@zeus:~#
Rather than install OpenJDK 11 with apt install default-jdk, I will use a prebuilt binary from adoptopenjdk.net. I prefer to use the smaller JRE (39 MB). The downside with using the JRE rather than the full JDK is that running Tomcat in debug mode is not possible with only the JRE, however that is perfectly fine with me on a production server.
Download the latest JRE, version 11.28 at the time of writing:
root@zeus:~# cd /opt/
root@zeus:/opt# wget -c "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11+28/OpenJDK11-jre_x64_linux_hotspot_11_28.tar.gz"
HTTP request sent, awaiting response... 200 OK
Length: 41597311 (40M) [application/octet-stream]
Saving to: βOpenJDK11-jre_x64_linux_hotspot_11_28.tar.gzβ
OpenJDK11-jre_x64_linux_hotspot_ 100%[==========================================================>] 39.67M 10.3MB/s in 4.3s
2019-01-17 18:54:59 (9.30 MB/s) - βOpenJDK11-jre_x64_linux_hotspot_11_28.tar.gzβ saved [41597311/41597311]
root@zeus:/opt# ls -al
total 40746
drwxr-xr-x 2 root root 3 Jan 17 18:54 .
drwxr-xr-x 25 root root 29 Dec 27 17:44 ..
-rw-r--r-- 1 root root 41597311 Oct 3 07:12 OpenJDK11-jre_x64_linux_hotspot_11_28.tar.gz
Unpack the file:
root@zeus:/opt# tar xvzf OpenJDK11-jre_x64_linux_hotspot_11_28.tar.gz
root@zeus:/opt# ls -al
total 40762
drwxr-xr-x 3 root root 4 Jan 17 18:57 .
drwxr-xr-x 25 root root 29 Dec 27 17:44 ..
drwxrwxr-x 7 500 500 8 Oct 2 21:45 jdk-11+28-jre
-rw-r--r-- 1 root root 41597311 Oct 3 07:12 OpenJDK11-jre_x64_linux_hotspot_11_28.tar.gz
Set root user/group to be the owner of this folder and files recursively:
root@zeus:/opt# chown -R root:root jdk-11+28-jre/
root@zeus:/opt# ls -al
total 40763
drwxr-xr-x 3 root root 5 Jan 17 19:11 .
drwxr-xr-x 25 root root 29 Dec 27 17:44 ..
drwxrwxr-x 7 root root 8 Oct 2 21:45 jdk-11+28-jre
-rw-r--r-- 1 root root 41597311 Oct 3 07:12 OpenJDK11-jre_x64_linux_hotspot_11_28.tar.gz
Now create a symbolic link to this JRE so that we easily can upgrade later on just by altering the link:
root@zeus:/opt# ln -s jdk-11+28-jre server_jre
root@zeus:/opt# ls -al
total 40763
drwxr-xr-x 3 root root 5 Jan 17 19:11 .
drwxr-xr-x 25 root root 29 Dec 27 17:44 ..
drwxrwxr-x 7 root root 8 Oct 2 21:45 jdk-11+28-jre
-rw-r--r-- 1 root root 41597311 Oct 3 07:12 OpenJDK11-jre_x64_linux_hotspot_11_28.tar.gz
lrwxrwxrwx 1 root root 13 Jan 17 19:11 server_jre -> jdk-11+28-jre
Check the java version:
root@zeus:/opt# ./server_jre/bin/java -version
openjdk version "11" 2018-09-25
OpenJDK Runtime Environment AdoptOpenJDK (build 11+28)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11+28, mixed mode)
Now download the latest binary distribution for Tomcat 9 (9.0.14 at the time of writing)
root@zeus:/opt# wget -c "http://apache.mirrors.spacedump.net/tomcat/tomcat-9/v9.0.14/bin/apache-tomcat-9.0.14.tar.gz"
HTTP request sent, awaiting response... 200 OK
Length: 10492627 (10M) [application/x-gzip]
Saving to: βapache-tomcat-9.0.14.tar.gzβ
apache-tomcat-9.0.14.tar.gz 100%[==========================================================>] 10.01M 2.83MB/s in 3.5s
2019-01-17 19:33:51 (2.83 MB/s) - βapache-tomcat-9.0.14.tar.gzβ saved [10492627/10492627]
Unpack the file:
root@zeus:/opt# tar xvzf apache-tomcat-9.0.14.tar.gz
root@zeus:/opt# ls -al
total 51148
drwxr-xr-x 4 root root 7 Jan 17 19:35 .
drwxr-xr-x 25 root root 29 Dec 27 17:44 ..
drwxr-xr-x 9 root root 16 Jan 17 19:35 apache-tomcat-9.0.14
-rw-r--r-- 1 root root 10492627 Dec 6 22:37 apache-tomcat-9.0.14.tar.gz
drwxrwxr-x 7 root root 8 Oct 2 21:45 jdk-11+28-jre
-rw-r--r-- 1 root root 41597311 Oct 3 07:12 OpenJDK11-jre_x64_linux_hotspot_11_28.tar.gz
lrwxrwxrwx 1 root root 13 Jan 17 19:11 server_jre -> jdk-11+28-jre
Create a symbolic link to apache-tomcat-9.0.14
root@zeus:/opt# ln -s apache-tomcat-9.0.14 tomcat
root@zeus:/opt# ls -al
total 51148
drwxr-xr-x 4 root root 8 Jan 17 19:36 .
drwxr-xr-x 25 root root 29 Dec 27 17:44 ..
drwxr-xr-x 9 root root 16 Jan 17 19:35 apache-tomcat-9.0.14
-rw-r--r-- 1 root root 10492627 Dec 6 22:37 apache-tomcat-9.0.14.tar.gz
drwxrwxr-x 7 root root 8 Oct 2 21:45 jdk-11+28-jre
-rw-r--r-- 1 root root 41597311 Oct 3 07:12 OpenJDK11-jre_x64_linux_hotspot_11_28.tar.gz
lrwxrwxrwx 1 root root 13 Jan 17 19:11 server_jre -> jdk-11+28-jre
lrwxrwxrwx 1 root root 20 Jan 17 19:36 tomcat -> apache-tomcat-9.0.14
Delete the tar.gz files:
root@zeus:/opt# rm -rf *.tar.gz
root@zeus:/opt# ls -al
total 35
drwxr-xr-x 4 root root 6 Jan 17 19:39 .
drwxr-xr-x 25 root root 29 Dec 27 17:44 ..
drwxr-xr-x 9 root root 16 Jan 17 19:35 apache-tomcat-9.0.14
drwxrwxr-x 7 root root 8 Oct 2 21:45 jdk-11+28-jre
lrwxrwxrwx 1 root root 13 Jan 17 19:11 server_jre -> jdk-11+28-jre
lrwxrwxrwx 1 root root 20 Jan 17 19:36 tomcat -> apache-tomcat-9.0.14
Check what we got in tomcat/bin folder:
root@zeus:/opt# cd tomcat/bin/
root@zeus:/opt/tomcat/bin# ls -al
total 1063
drwxr-x--- 2 root root 29 Jan 17 19:35 .
drwxr-xr-x 9 root root 16 Jan 17 19:35 ..
-rw-r----- 1 root root 34941 Dec 6 22:15 bootstrap.jar
-rw-r----- 1 root root 15900 Dec 6 22:15 catalina.bat
-rwxr-x--- 1 root root 24220 Dec 6 22:15 catalina.sh
-rw-r----- 1 root root 1664 Dec 6 22:17 catalina-tasks.xml
-rw-r----- 1 root root 2123 Dec 6 22:15 ciphers.bat
-rwxr-x--- 1 root root 1997 Dec 6 22:15 ciphers.sh
-rw-r----- 1 root root 25145 Dec 6 22:15 commons-daemon.jar
-rw-r----- 1 root root 207125 Dec 6 22:15 commons-daemon-native.tar.gz
-rw-r----- 1 root root 2040 Dec 6 22:15 configtest.bat
-rwxr-x--- 1 root root 1922 Dec 6 22:15 configtest.sh
-rwxr-x--- 1 root root 8513 Dec 6 22:15 daemon.sh
-rw-r----- 1 root root 2091 Dec 6 22:15 digest.bat
-rwxr-x--- 1 root root 1965 Dec 6 22:15 digest.sh
-rw-r----- 1 root root 3606 Dec 6 22:15 makebase.bat
-rwxr-x--- 1 root root 3382 Dec 6 22:15 makebase.sh
-rw-r----- 1 root root 3460 Dec 6 22:15 setclasspath.bat
-rwxr-x--- 1 root root 3708 Dec 6 22:15 setclasspath.sh
-rw-r----- 1 root root 2020 Dec 6 22:15 shutdown.bat
-rwxr-x--- 1 root root 1902 Dec 6 22:15 shutdown.sh
-rw-r----- 1 root root 2022 Dec 6 22:15 startup.bat
-rwxr-x--- 1 root root 1904 Dec 6 22:15 startup.sh
-rw-r----- 1 root root 47262 Dec 6 22:15 tomcat-juli.jar
-rw-r----- 1 root root 418183 Dec 6 22:15 tomcat-native.tar.gz
-rw-r----- 1 root root 4574 Dec 6 22:15 tool-wrapper.bat
-rwxr-x--- 1 root root 5515 Dec 6 22:15 tool-wrapper.sh
-rw-r----- 1 root root 2026 Dec 6 22:15 version.bat
-rwxr-x--- 1 root root 1908 Dec 6 22:15 version.sh
OK, no need for bat files here since we are on linux, let's remove them:
root@zeus:/opt/tomcat/bin# rm -rf *.bat
root@zeus:/opt/tomcat/bin# ls -al
total 1002
drwxr-x--- 2 root root 19 Jan 17 19:41 .
drwxr-xr-x 9 root root 16 Jan 17 19:35 ..
-rw-r----- 1 root root 34941 Dec 6 22:15 bootstrap.jar
-rwxr-x--- 1 root root 24220 Dec 6 22:15 catalina.sh
-rw-r----- 1 root root 1664 Dec 6 22:17 catalina-tasks.xml
-rwxr-x--- 1 root root 1997 Dec 6 22:15 ciphers.sh
-rw-r----- 1 root root 25145 Dec 6 22:15 commons-daemon.jar
-rw-r----- 1 root root 207125 Dec 6 22:15 commons-daemon-native.tar.gz
-rwxr-x--- 1 root root 1922 Dec 6 22:15 configtest.sh
-rwxr-x--- 1 root root 8513 Dec 6 22:15 daemon.sh
-rwxr-x--- 1 root root 1965 Dec 6 22:15 digest.sh
-rwxr-x--- 1 root root 3382 Dec 6 22:15 makebase.sh
-rwxr-x--- 1 root root 3708 Dec 6 22:15 setclasspath.sh
-rwxr-x--- 1 root root 1902 Dec 6 22:15 shutdown.sh
-rwxr-x--- 1 root root 1904 Dec 6 22:15 startup.sh
-rw-r----- 1 root root 47262 Dec 6 22:15 tomcat-juli.jar
-rw-r----- 1 root root 418183 Dec 6 22:15 tomcat-native.tar.gz
-rwxr-x--- 1 root root 5515 Dec 6 22:15 tool-wrapper.sh
-rwxr-x--- 1 root root 1908 Dec 6 22:15 version.sh
root@zeus:/opt/tomcat/bin# cd
root@zeus:~#
Create Tomcat User:
For security purposes, Tomcat should be run as an unprivileged user (i.e. not root). We will create a new user and group that will run the Tomcat service.
First, create a new tomcat group:
root@zeus:~# groupadd tomcat
Next, create a new tomcat user. We'll make this user a member of the tomcat group, with a home directory of /opt/tomcat, and with a shell of /bin/false (so nobody can log into the account):
root@zeus:~# useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
The tomcat user that we set up needs to have access to the Tomcat installation. We'll set that up now.
Give the tomcat group ownership over the entire installation directory:
root@zeus:~# chgrp -R tomcat /opt/apache-tomcat-9.0.14
Next, give the tomcat group read access to the conf directory and all of its contents, and write/execute access to the directory itself:
root@zeus:~# chmod -R g+r /opt/apache-tomcat-9.0.14/conf
root@zeus:/# chmod g+wx /opt/apache-tomcat-9.0.14/conf
The reason for giving it wx permission for the directory itself is otherwise we would get this in the catalina.out log:
SEVERE [main] org.apache.catalina.startup.HostConfig.beforeStart Unable to create directory for deployment: [/opt/apache-tomcat-9.0.14/conf/Catalina/localhost]
Make the tomcat user the owner of the webapps, work, temp, and logs directories:
root@zeus:~# cd /opt/tomcat
root@zeus:/opt/tomcat# chown -R tomcat webapps/ work/ temp/ logs/
It should now look like this:
root@zeus:/opt/tomcat# ls -al
total 172
drwxr-xr-x 9 root tomcat 16 Jan 17 19:35 .
drwxr-xr-x 4 root root 6 Jan 17 19:39 ..
drwxr-x--- 2 root tomcat 19 Jan 17 19:41 bin
-rw-r----- 1 root tomcat 19203 Dec 6 22:17 BUILDING.txt
drwxrwx--- 2 root tomcat 12 Dec 6 22:17 conf
-rw-r----- 1 root tomcat 6095 Dec 6 22:17 CONTRIBUTING.md
drwxr-x--- 2 root tomcat 32 Jan 17 19:35 lib
-rw-r----- 1 root tomcat 57092 Dec 6 22:17 LICENSE
drwxr-x--- 2 tomcat tomcat 2 Dec 6 22:14 logs
-rw-r----- 1 root tomcat 2333 Dec 6 22:17 NOTICE
-rw-r----- 1 root tomcat 3255 Dec 6 22:17 README.md
-rw-r----- 1 root tomcat 6854 Dec 6 22:17 RELEASE-NOTES
-rw-r----- 1 root tomcat 16262 Dec 6 22:17 RUNNING.txt
drwxr-x--- 2 tomcat tomcat 3 Jan 17 19:35 temp
drwxr-x--- 7 tomcat tomcat 7 Dec 6 22:15 webapps
drwxr-x--- 2 tomcat tomcat 2 Dec 6 22:14 work
Now that the proper permissions are set up, we can create a systemd service file to manage the Tomcat process.
Create a systemd Service File:
root@zeus:/opt/tomcat# vi /etc/systemd/system/tomcat.service
Put these lines in the file:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JRE_HOME=/opt/server_jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
When you are finished, save and close the file.
Please note: If you use the JDK you should set JAVA_HOME, if JRE you should set JRE_HOME
from catalina.sh script:
# JAVA_HOME Must point at your Java Development Kit installation.
# Required to run the with the "debug" argument.
Next, reload the systemd daemon so that it knows about our service file:
root@zeus:/opt/tomcat# systemctl daemon-reload
Now before we start tomcat we will disable the http connector that is enabled by default for port 8080. Edit conf/server.xml and comment out the Connector at line 69. Also add the localhost ipv4 address to the ajp Connector at line 116:
root@zeus:/opt/tomcat# vi conf/server.xml
<!-- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> -->
<Connector address="127.0.0.1" port="8009" protocol="AJP/1.3" redirectPort="8443" />
When you are finished, save and close the file.
Now, in order to access the tomcat manager site we will have to edit the tomcat-users.xml file:
root@zeus:/opt/tomcat# vi conf/tomcat-users.xml
Put the following inside the tomcat-users tag, replace with your prefered username and password
<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>
By default the tomcat Manager is only accessible from a browser running on the same machine as Tomcat. We will modify this restriction temporarily to allow for our client's IP. We need to edit the Manager's context.xml file. For Tomcat v8.5.4 and above, the file webapps/manager/META-INF/context.xml has to be adjusted:
Looking at the context.xml file:
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>
I change this file to allow for 192.X.X.X addresses, you can also comment out the whole Valve tag to allow for all addresses (not recommended):
root@zeus:/opt/tomcat# vi webapps/manager/META-INF/context.xml
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="192\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>
When you are finished, save and close the file.
Start Tomcat:
root@zeus:/opt/tomcat# systemctl start tomcat
root@zeus:/opt/tomcat# systemctl --no-pager status tomcat
β tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/etc/systemd/system/tomcat.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2019-01-17 21:07:17 CET; 11s ago
Process: 5810 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
Tasks: 42 (limit: 4915)
CGroup: /system.slice/tomcat.service
ββ5825 /opt/server_jre/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true β¦
Jan 17 21:07:17 zeus systemd[1]: Starting Apache Tomcat Web Application Container...
Jan 17 21:07:17 zeus startup.sh[5810]: Tomcat started.
Jan 17 21:07:17 zeus systemd[1]: Started Apache Tomcat Web Application Container.
root@zeus:/opt/tomcat#
With the command pstree we can check how tomcat forks children processes:
root@zeus:/opt/tomcat# pstree -p | grep java
ββjava(23800)ββ¬β{java}(23804)
β ββ{java}(23807)
β ββ{java}(23808)
β ββ{java}(23809)
β ββ{java}(23810)
β ββ{java}(23811)
β ββ{java}(23812)
β ββ{java}(23813)
β ββ{java}(23814)
β ββ{java}(23815)
β ββ{java}(23816)
β ββ{java}(23817)
β ββ{java}(23818)
β ββ{java}(23822)
β ββ{java}(23828)
β ββ{java}(23831)
β ββ{java}(23832)
β ββ{java}(23833)
β ββ{java}(23834)
β ββ{java}(23835)
β ββ{java}(23836)
β ββ{java}(23837)
β ββ{java}(23838)
β ββ{java}(23839)
β ββ{java}(23840)
β ββ{java}(23842)
β ββ{java}(23853)
β ββ{java}(23854)
β ββ{java}(23855)
β ββ{java}(4990)
β ββ{java}(5347)
β ββ{java}(5528)
β ββ{java}(6119)
β ββ{java}(6516)
β ββ{java}(6794)
β ββ{java}(7084)
β ββ{java}(7524)
β ββ{java}(8108)
β ββ{java}(8475)
To enable tomcat service on boot up run:
root@zeus:/opt/tomcat# systemctl enable tomcat
Created symlink /etc/systemd/system/multi-user.target.wants/tomcat.service β /etc/systemd/system/tomcat.service.
Now we will enable the proxy_ajp module in Apache. I presume you have apache up and running already otherwise take a look here: How to install Apache and configure virtualhosts with http and https on Ubuntu 18.04 LTS
Enable proxy_ajp for Apache:
root@zeus:/opt/tomcat# a2enmod proxy_ajp
Considering dependency proxy for proxy_ajp:
Enabling module proxy.
Enabling module proxy_ajp.
To activate the new configuration, you need to run:
systemctl restart apache2
root@zeus:/opt/tomcat#
Now edit your vhosts-default.conf file:
root@zeus:/opt/tomcat# vi /etc/apache2/sites-enabled/vhosts-default.conf
Add this line...
ProxyPass "/manager" "ajp://127.0.0.1:8009/manager"
...so that it looks like this now:
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/example
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/example>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ProxyPass "/manager" "ajp://127.0.0.1:8009/manager"
</VirtualHost>
This ProxyPass directive can be set in the virtualhost for https also should you want to.
Note that usually no ProxyPassReverse directive is necessary. The AJP request includes the original host header given to the proxy, and the application server can be expected to generate self-referential headers relative to this host, so no rewriting is necessary.
Restart apache for the changes to take effect:
root@zeus:/opt/tomcat# systemctl restart apache2
Now point your browser to http://www.example.com/manager


Undeploy / /docs /examples by clicking Undeploy on them

Checking status in the manager:

OK, almost done now. However, I only wanted that ProxyPass manager mapping to be temporary set so we delete it and restart apache. Also undo the changes we made to webapps/manager/META-INF/context.xml and conf/tomcat-users.xml.
For future deployments I will use the autodeploy feature, just copy the war file into the webapps folder, and then make a new ProxyPass directive with mapping set to the deployed apps context path.
In conf/server.xml we can see that the autodeploy feature is enabled by default...
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
Looking at logs/catalina.out we can see the line:
17-Jan-2019 22:50:00.599 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib]
We can ignore this message. The library referred to is bundled into an OS specific libtcnative.so (or dll for windows) loaded via JNI. It allows Tomcat to use OS functionalities not provided in the Java Runtime (such as sendfile, epoll, OpenSSL, OS level functionality (random number generation, system status, etc), and native process handling (shared memory, NT pipes and Unix sockets). Tomcat will run just fine without it, these features allows making Tomcat a general purpose webserver. We however only use Tomcat as a backend java web container working together with the Apache-webserver, hence we ignore this message.
To build and deploy your own Hello World webapp follow this link:
HelloWorld from Java jsp with OpenJDK 11 packaged Maven war and deploy on Tomcat 9
That's all folks!!!
Example logs/catalina.out for tomcat startup:
18-Jan-2019 12:29:24.393 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/9.0.14
18-Jan-2019 12:29:24.397 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Dec 6 2018 21:13:53 UTC
18-Jan-2019 12:29:24.398 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 9.0.14.0
18-Jan-2019 12:29:24.398 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux
18-Jan-2019 12:29:24.399 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 4.15.0-43-generic
18-Jan-2019 12:29:24.399 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
18-Jan-2019 12:29:24.399 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /opt/jdk-11+28-jre
18-Jan-2019 12:29:24.399 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11+28
18-Jan-2019 12:29:24.400 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
18-Jan-2019 12:29:24.400 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: /opt/apache-tomcat-9.0.14
18-Jan-2019 12:29:24.400 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: /opt/apache-tomcat-9.0.14
18-Jan-2019 12:29:24.403 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
18-Jan-2019 12:29:24.403 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
18-Jan-2019 12:29:24.404 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
18-Jan-2019 12:29:24.404 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties
18-Jan-2019 12:29:24.404 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
18-Jan-2019 12:29:24.404 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.awt.headless=true
18-Jan-2019 12:29:24.405 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.security.egd=file:/dev/./urandom
18-Jan-2019 12:29:24.405 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
18-Jan-2019 12:29:24.405 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
18-Jan-2019 12:29:24.405 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
18-Jan-2019 12:29:24.405 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xms512M
18-Jan-2019 12:29:24.406 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Xmx1024M
18-Jan-2019 12:29:24.406 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -XX:+UseParallelGC
18-Jan-2019 12:29:24.406 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
18-Jan-2019 12:29:24.406 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/opt/tomcat
18-Jan-2019 12:29:24.407 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/opt/tomcat
18-Jan-2019 12:29:24.407 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/opt/tomcat/temp
18-Jan-2019 12:29:24.407 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib]
18-Jan-2019 12:29:24.456 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-127.0.0.1-8009"]
18-Jan-2019 12:29:24.495 INFO [main] org.apache.catalina.startup.Catalina.load Server initialization in [648] milliseconds
18-Jan-2019 12:29:24.568 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service [Catalina]
18-Jan-2019 12:29:24.569 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet engine: [Apache Tomcat/9.0.14]
18-Jan-2019 12:29:24.578 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.14/webapps/host-manager]
18-Jan-2019 12:29:25.004 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.14/webapps/host-manager] has finished in [426] ms
18-Jan-2019 12:29:25.005 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/opt/apache-tomcat-9.0.14/webapps/manager]
18-Jan-2019 12:29:25.037 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/opt/apache-tomcat-9.0.14/webapps/manager] has finished in [32] ms
18-Jan-2019 12:29:25.043 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-127.0.0.1-8009"]
18-Jan-2019 12:29:25.055 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [558] milliseconds