Tomcat 10 : インストール2022/06/17 |
|
Tomcat 10 をインストールして、Java アプリケーションをサーバーサイドで実行できる環境を構築します。
|
|
| [1] | |
| [2] | Tomcat 10 のインストールと設定です。 事前にダウンロードサイトで最新版を確認しておいてください。 ⇒ https://tomcat.apache.org/download-10.cgi |
|
[root@dlp ~]# curl -O http://ftp.riken.jp/net/apache/tomcat/tomcat-10/v10.0.22/bin/apache-tomcat-10.0.22.tar.gz [root@dlp ~]# tar zxvf apache-tomcat-10.0.22.tar.gz [root@dlp ~]# mv apache-tomcat-10.0.22 /usr/libexec/tomcat10 [root@dlp ~]# useradd -M -d /usr/libexec/tomcat10 tomcat [root@dlp ~]# chown -R tomcat. /usr/libexec/tomcat10
|
| [3] | Systemd 設定ファイルを作成しておきます。 |
|
[root@dlp ~]#
vi /usr/lib/systemd/system/tomcat10.service # 新規作成 [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 systemctl enable --now tomcat10 |
| [4] | SELinux を有効にしている場合は、Tomcat を起動するためにポリシーの許可が必要です。 |
|
[root@dlp ~]#
vi catalinash.te # 以下の内容で新規作成
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 };
checkmodule -m -M -o catalinash.mod catalinash.te [root@dlp ~]# semodule_package --outfile catalinash.pp --module catalinash.mod [root@dlp ~]# semodule -i catalinash.pp |
| [5] | Firewalld を有効にしている場合、且つ、他ホストからも Tomcat にアクセスする場合はポートの許可が必要です。 |
|
[root@dlp ~]# firewall-cmd --add-port=8080/tcp success [root@dlp ~]# firewall-cmd --runtime-to-permanent success |
| [6] | ローカルホスト または 任意のクライアントコンピューターで Web ブラウザーを起動し、[http://(サーバーホスト名 または IP アドレス):8080/] にアクセスして、Tomcat デフォルトページが表示されることを確認します。 |
|
| [7] | 現在の日時を表示するテストサーブレットを作成して動作を確認します。 |
|
[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 # Tomcat 10 からは Jakarta EE へ移行 # そのためパッケージ名 [javax.*] は全て [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>");
}
}
javac -classpath /usr/libexec/tomcat10/lib/servlet-api.jar daytime.java
[root@dlp classes]#
vi /usr/libexec/tomcat10/webapps/ROOT/WEB-INF/web.xml # 以下を <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>
|
| [8] | [http://(サーバーのホスト名 または IP アドレス):8080/daytime] にアクセスして、以下のようなページが表示されることを確認します。 |
|
| Sponsored Link |
|
|