1
6

More than 3 years have passed since last update.

Javaでサーバアプリ開発

Last updated at Posted at 2021-03-13

今更だけど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ファイル。(黄色の個所)

image.png

「apache-tomcat-10.0.4.zip」というファイルがダウンロードされたので、「pleiades\Tomcat」の下に保存する。

image.png

「10」というフォルダ名で展開する。
image.png

1-1-2.EclipseにTomcatを追加する方法

Tomcatの展開まで終わったら次にEclipseの設定を行う。

  1. [ウィンドウ]-[設定]で「設定」画面を開く。
  2. 「設定」画面で、[サーバ]-[ランタイム環境]を選択すると、以下の画面が表示される。
    image.png

  3. [追加]ボタンをクリックし、【Apache Tomcat v10.0】を選択し、[新規ローカル・サーバの作成]にチェックを付け、[次へ]
    image.png

  4. [Tomcat インストール・ディレクトリー]に先ほど展開したフォルダを指定する。
    image.png

  5. [完了]をクリックすると以下の用に追加される。
    image.png

  6. [適用して閉じる]をクリックすると、【Servers】が追加される。※3の処理で、チェックを付けている場合。
    image.png

1-2.Eclipseのプロジェクト作成(動的Webプロジェクト)

  1. [ファイル]-[新規]-[その他]
  2. 「ウィザードを選択」画面で[Web]-[動的Webプロジェクト]を選択し、[次へ] image.png
  3. [プロジェクト名]に任意の名前、ここでは【WebSample】を入力し、[ターゲット・ランタイム]に【Tomcat9(Java11)】を選択し、[次へ] image.png
  4. とりあえず初期状態のまま[次へ] image.png
  5. [web.xmlデプロイメント記述子の生成]にチェックを付け、[完了] image.png

1-3.Eclipseのプロジェクト作成(Maven)

  1. [シンプルなプロジェクトの作成]にチェックを付けないで[次へ]
    image.png

  2. [フィルター]に【maven-archetype-webapp】を入力し、[グループID]が【org.apache.maven.archetypes】になっているものを選択し、[次へ]
    image.png

2.Tomcatの起動・停止

ここでは1-2で作成した動的Webプロジェクトを使用して説明する。

2-1.Java EEのパースペクティブ

Java EEのパースペクティブを開く。
image.png

2-2.サーバー設定

  1. 画面下に[サーバー]タブが表示されるので選択する。
    image.png

  2. 「使用可能なサーバーがありません。このリンクをクリックして新規サーバーを作成してください」というリンクをクリックする。

  3. 「新規サーバー」画面が表示されるので、【Tomcat9.0サーバー】を選択し、[次へ]
    image.png

  4. 作成したプロジェクト名が表示されているので、[追加]し、[完了]
    image.png

  5. [サーバ]タブが以下の用に表示されたら、準備完了。
    image.png

2-3.起動と停止

サーバタブの緑色の矢印をクリックすると起動する。(赤枠で囲った個所)

image.png

起動後にブラウザで【http://localhost:8080/】にアクセスすると以下の用に表示される。
image.png

停止は起動の2つ右にある赤いボタンで停止する。

停止中にブラウザでアクセスすると以下の用に表示される。
image.png

2-4. Tomcatの起動オプション

TomcatにJConsoleなどで接続する場合など、Javaの起動オプションを設定したい場合がある。
その場合は以下の手順で設定することが可能。

  1. Eclipseから一度Tomcatを実行する。
  2. Eclipseの[実行]-[実行構成]を選択。
  3. 左のツリーの「Apache Tomcat」の下に「ローカルホストのTomcat **」が出来ているので選択。
  4. 「引数」タブに「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

1
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
6