CentOS Stream 8
Sponsored Link

Tomcat 10 : Install2021/04/12

Install Tomcat 10 to configure Java Application Server.
[2] Install Tomcat 10.
Make sure the latest version and source URL on download site.
⇒ https://tomcat.apache.org/download-10.cgi
[root@dlp ~]#
curl -O http://ftp.riken.jp/net/apache/tomcat/tomcat-10/v10.0.5/bin/apache-tomcat-10.0.5.tar.gz

[root@dlp ~]#
tar zxvf apache-tomcat-10.0.5.tar.gz

[root@dlp ~]#
mv apache-tomcat-10.0.5 /usr/libexec/tomcat10

[root@dlp ~]#
useradd -M -d /usr/libexec/tomcat10 tomcat

[root@dlp ~]#
chown -R tomcat. /usr/libexec/tomcat10
[3] Create a Systemd Setting file.
[root@dlp ~]#
vi /usr/lib/systemd/system/tomcat10.service
# create new

Description=Apache Tomcat 10



[root@dlp ~]#
systemctl enable --now tomcat10

[4] If SELinux is enabled, change policy to start Tomcat.
[root@dlp ~]#
vi catalinash.te
# create new

module catalinash 1.0;

require {
        type init_t;
        type admin_home_t;
        class file { append execute execute_no_trans ioctl open read };

#============= init_t ==============
allow init_t admin_home_t:file { append execute execute_no_trans ioctl open read };

[root@dlp ~]#
checkmodule -m -M -o catalinash.mod catalinash.te

checkmodule: loading policy configuration from zabbix_server.te
checkmodule: policy configuration loaded
checkmodule: writing binary representation (version 19) to catalinash.mod
[root@dlp ~]#
semodule_package --outfile catalinash.pp --module catalinash.mod

[root@dlp ~]#
semodule -i catalinash.pp

[5] If Firewalld is running and also access to Tomcat from other Hosts, allow ports.
[root@dlp ~]#
firewall-cmd --add-port=8080/tcp --permanent

[root@dlp ~]#
firewall-cmd --reload

[6] Start a Web browser on localhost or clients on the network and access to [http://(server's hostname or IP address):8080/], then Tomcat default site is displayed like follows.
[7] Create a test servlet which shows current date and make sure it works normally.
[root@dlp ~]#
mkdir /usr/libexec/tomcat10/webapps/ROOT/WEB-INF/classes

[root@dlp ~]#
chown tomcat. /usr/libexec/tomcat10/webapps/ROOT/WEB-INF/classes

[root@dlp ~]#
cd /usr/libexec/tomcat10/webapps/ROOT/WEB-INF/classes

[root@dlp classes]#
vi daytime.java
# from Tomcat 10, migrated to Jakarta EE

# so it needs to replace [javax.*] to [jakarta.*]

import java.io.*;
import jakarta.servlet.*;
import jakarta.servlet.http.*;
import java.util.Calendar;

public class daytime extends HttpServlet {
    public void doGet(HttpServletRequest request
    ,HttpServletResponse response)

    throws IOException, ServletException{
        PrintWriter out = response.getWriter();
        Calendar cal = Calendar.getInstance();
        out.println("<div style=\"font-size: 40px; text-align: center; font-weight: bold\">");
        out.println(cal.get(Calendar.YEAR) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + 
        cal.get(Calendar.DATE) + " " + cal.get(Calendar.HOUR_OF_DAY) + ":" + cal.get(Calendar.MINUTE));

[root@dlp classes]#
javac -classpath /usr/libexec/tomcat10/lib/servlet-api.jar daytime.java

[root@dlp classes]#
vi /usr/libexec/tomcat10/webapps/ROOT/WEB-INF/web.xml
# add follows between <web-app> - </web-app>

[8] Access to [http://(server's hostname or IP address):8080/daytime] to make sure it works normally.
Matched Content