Ubuntu 24.04
Sponsored Link

Tomcat 10 : Install2024/06/21

 

Install Tomcat 10 to configure Java Application Server.

[1]

Install Java Runtime Environment, refer to here.

[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 https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.25/bin/apache-tomcat-10.1.25.tar.gz

root@dlp:~#
tar zxvf apache-tomcat-10.1.25.tar.gz

root@dlp:~#
mv apache-tomcat-10.1.25 /usr/libexec/tomcat10

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

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

[Unit]
Description=Apache Tomcat 10
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/libexec/tomcat10/bin/startup.sh
ExecStop=/usr/libexec/tomcat10/bin/shutdown.sh
RemainAfterExit=yes
User=tomcat
Group=tomcat

[Install]
WantedBy=multi-user.target

root@dlp:~#
systemctl enable --now tomcat10

[4] 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.
[5] 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:tomcat /usr/libexec/tomcat10/webapps/ROOT/WEB-INF/classes

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

root@dlp:/usr/libexec/tomcat10/webapps/ROOT/WEB-INF/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{
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        Calendar cal = Calendar.getInstance();
        out.println("<html>\n<head>\n<title>DayTime</title>\n</head>\n<body>");
        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));
        out.println("</div>\n</body>\n</html>");
    }
}

root@dlp:/usr/libexec/tomcat10/webapps/ROOT/WEB-INF/classes#
javac -classpath /usr/libexec/tomcat10/lib/servlet-api.jar daytime.java

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

  <servlet>
     <servlet-name>daytime</servlet-name>
     <servlet-class>daytime</servlet-class>
  </servlet>
  <servlet-mapping>
     <servlet-name>daytime</servlet-name>
     <url-pattern>/daytime</url-pattern>
  </servlet-mapping>
[6] Access to [http://(server's hostname or IP address):8080/daytime] to make sure it works normally.
Matched Content