今更だけどJavaでWebアプリケーション開発を久しぶりに行うことになったので、その整理。
0.はじめに
0-1.環境
Windows10 20H2
pleiades-2020-12-java-win-64bit-jre_20201222
0-2.書式
記号 | 説明 |
---|---|
「 」 | 画面名 |
[ ] | 画面内の項目名 |
【 】 | 入力値 |
1. 環境構築
1-1.Tomcatの準備
pleiadesにはTomcat9が標準で入っているので、それを使用する。
そのため手動で設定は不要だが、設定手順を明記するため、Tomcat10を使用するための手順を記載する。
1-1-1.Tomcatのダウンロード
以下のURLからTomcat10をダウンロードする。
https://tomcat.apache.org/download-10.cgi
ダウンロードするモジュールは「Binary Distributions」のCoreにあるZioファイル。(黄色の個所)
「apache-tomcat-10.0.4.zip」というファイルがダウンロードされたので、「pleiades\Tomcat」の下に保存する。
1-1-2.EclipseにTomcatを追加する方法
Tomcatの展開まで終わったら次にEclipseの設定を行う。
1-2.Eclipseのプロジェクト作成(動的Webプロジェクト)
- [ファイル]-[新規]-[その他]
- 「ウィザードを選択」画面で[Web]-[動的Webプロジェクト]を選択し、[次へ]
- [プロジェクト名]に任意の名前、ここでは【WebSample】を入力し、[ターゲット・ランタイム]に【Tomcat9(Java11)】を選択し、[次へ]
- とりあえず初期状態のまま[次へ]
- [web.xmlデプロイメント記述子の生成]にチェックを付け、[完了]
1-3.Eclipseのプロジェクト作成(Maven)
2.Tomcatの起動・停止
ここでは1-2で作成した動的Webプロジェクトを使用して説明する。
2-1.Java EEのパースペクティブ
2-2.サーバー設定
-
「使用可能なサーバーがありません。このリンクをクリックして新規サーバーを作成してください」というリンクをクリックする。
2-3.起動と停止
サーバタブの緑色の矢印をクリックすると起動する。(赤枠で囲った個所)
起動後にブラウザで【http://localhost:8080/】にアクセスすると以下の用に表示される。
停止は起動の2つ右にある赤いボタンで停止する。
2-4. Tomcatの起動オプション
TomcatにJConsoleなどで接続する場合など、Javaの起動オプションを設定したい場合がある。
その場合は以下の手順で設定することが可能。
- Eclipseから一度Tomcatを実行する。
- Eclipseの[実行]-[実行構成]を選択。
- 左のツリーの「Apache Tomcat」の下に「ローカルホストのTomcat **」が出来ているので選択。
- 「引数」タブに「VM引数」の設定があるので、そこに追加する。
2-5.TomcatのプロセスID
タスクマネージャからTomcatのプロセスは見えない。javaw.exeとして表示される。
3.Java標準?Tool
3-1.JConsole
3-1-1.説明
メモリやスレッドの状態を確認するためのGUIツール。
3-1-2.使い方
Tomcat側の設定
設定 | 説明 |
---|---|
-Dcom.sun.management.jmxremote | JMX を使用してリモート監視することを JVM に通知します。 |
-Dcom.sun.management.jmxremote.port=18888 | 監視のために JVM が開く必要があるポート。 |
-Dcom.sun.management.jmxremote.ssl=false | SSL を使用しません。 |
-Dcom.sun.management.jmxremote.authenticate=false | 認証は必要ありません。 |
-Djava.rmi.server.hostname= | 基盤となる RMI クライアント接続が使用するホスト名と IP。 |
3-2.jstack
3-2-1.説明
スレッドダンプ取得用ツール
3-2-2.使い方
引数にプロセスIDを指定
3-2-3.備考
Oracle JDK5には含まれていない。
Amazon Corretto8には含まれている。
3-2-4.トラブルシューティング
1.問題
C:\Program Files\Amazon Corretto\jdk1.8.0_232\bin>.\jstack.exe 1872
1872: Unable to attach to 32-bit process running under WOW64
The -F option can be used when the target process is not responding
1.原因
64bitのツールで32bitのプロセスに対して実行したため
2.問題
1872: Unable to enqueue operation: the target VM does not support attach mechani
sm
The -F option can be used when the target process is not responding
2.原因
32bitのツールでEclipseから動いたTomcat5に対して実行したけど、エラーになった。
Tomcat5の問題か?
3-3.jmap
3-3-1.説明
ヒープダンプ取得用ツール。
JDK6から含まれるようになった。
3-3-2.使い方
jmap -dump:format=b,file=ファイル名 プロセスID
4.メモリについて
5.サンプルプログラム
5-1.Servlet
5-1-1.メモリ枯渇
-jmap