EclipseでTomcatを設定する。

前回は、プロジェクトにSpringを設定しましたがTomcatを設定していないことに気が付きました。

ponsuke-tarou.hatenablog.com

Tomcatは、Java ServletJSP を実行するためのWebコンテナです。

f:id:ponsuke_tarou:20180301224225p:plain

Apache License 2.0を採用したオープンソースソフトウェア。
2005年以降、Apacheソフトウェア財団のトップレベルプロジェクトのひとつであるApache Tomcat Project 内で開発されている。
それ以前はかつて存在していたJakartaプロジェクト内で開発されていた。
Apache Tomcat - Wikipedia

オープンソースのソフトウェアで、JavaサーブレットJSPを処理するアプリケーションサーバTomcatは単独でWebサーバとして動作することも可能だが、ApacheIISプラグインと動作できるようになっており、実際にはプラグインとしての利用が主流である。
Tomcatは主なUNIX系OSWindowsMac OS Xなどで動作する。Sun Microsystems社からJavaサーブレットJSPのリファレンス実装として認められたソフトウェアで、利用者も非常に多い。
e-words.jp

Webコンテナは、Javaサーブレットの実行環境となるソフトウェアです。

Java EE アーキテクチャのWebコンポーネント規約を実装するソフトウェア。
この規約では、コンピュータセキュリティ、並列性、ライフサイクル管理、トランザクション処理、デプロイやその他のサービスを含むWebコンポーネントの実行環境を規定している。WebコンテナはJava EEプラットフォームAPIを利用したJSPコンテナとしての機能も提供する。
Webコンテナ - Wikipedia

サーブレットはWebサーバ上で動作させるJava言語で書かれた簡易なプログラムで、クライアント(Webブラウザなど)からの要求を受けて処理を行い、結果をWebページとして送信する。サーブレットは単体では動作せず、Webサーバからの処理要求を受け付けてサーブレットの記述に従って実際の処理を行うソフトウェアが必要で、これをサーブレットコンテナという。
e-words.jp

f:id:ponsuke_tarou:20210123112409j:plain
台東区浅草の鶴の湯

Macの場合

Tomcatを配置します。

  1. Apache Tomcat® - Apache Tomcat 8 Software Downloadsへアクセスします。
  2. 好きなバージョンの.tar.gz をダウンロードして解凍します。
    • f:id:ponsuke_tarou:20180301230312p:plain
  3. 解凍した「apache-tomcat-8.0.23」(バージョンによって末尾は変わる)をApplicationsディレクトリ配下に移動します。
    • f:id:ponsuke_tarou:20180301230429p:plain
  4. Tomcatに権限を付与します。
  5. Tomcatを起動します。
  6. ブラウザで「http://localhost:8080/」にアクセスします。
    • f:id:ponsuke_tarou:20180301230942p:plain
  7. Tomcatを停止します。
# Tomcatに権限を付与します。
$ chmod 755 /Applications/apache-tomcat-8.0.23/bin/startup.sh
$ chmod 755 /Applications/apache-tomcat-8.0.23/bin/shutdown.sh

# Tomcatを起動します。
$ /Applications/apache-tomcat-8.0.23/bin/startup.sh 
Using CATALINA_BASE:   /Applications/apache-tomcat-8.0.23
Using CATALINA_HOME:   /Applications/apache-tomcat-8.0.23
Using CATALINA_TMPDIR: /Applications/apache-tomcat-8.0.23/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Using CLASSPATH:       /Applications/apache-tomcat-8.0.23/bin/bootstrap.jar:/Applications/apache-tomcat-8.0.23/bin/tomcat-juli.jar
Tomcat started.

# Tomcatを停止します。
$ /Applications/apache-tomcat-8.0.23/bin/shutdown.sh 
Using CATALINA_BASE:   /Applications/apache-tomcat-8.0.23
Using CATALINA_HOME:   /Applications/apache-tomcat-8.0.23
Using CATALINA_TMPDIR: /Applications/apache-tomcat-8.0.23/temp
Using JRE_HOME:        /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home
Using CLASSPATH:       /Applications/apache-tomcat-8.0.23/bin/bootstrap.jar:/Applications/apache-tomcat-8.0.23/bin/tomcat-juli.jar

EclipseにTomactのプラグインを入れます。

方法は2つあるので好きな方を選びます。

zipファイルでインストールする方法
  1. Eclipse Tomcat Pluginへアクセスします。
  2. zipファイルをダウンロードします。
    • f:id:ponsuke_tarou:20180301235556p:plain
  3. [Help] > [Install New Software]を選択します。
  4. [Work with] > [Add...]ボタン > [Archive]ボタン > ダウンロードしたzipファイルを選択 > [OK]ボタン
  5. [Tomcat Plugin]にチェックを入れます。
  6. [Next>]ボタン > [Next>]ボタン > [I accept the........]を選択 > [Finish]ボタン
  7. Eclipseを再起動します。
  8. Tom猫マークが表示されます。
    • f:id:ponsuke_tarou:20180302000344p:plain
Eclipse Marketplaceでインストールする方法
  1. [Help] > [Eclipse Marketplace]でダイアログを開く
  2. [Find]に「tomcat」を入力して検索する
  3. 検索結果に表示された「Eclipse Tomcat Plugin x.x.x(バージョン)」の[Install]ボタンでダイアログを開く
    • f:id:ponsuke_tarou:20200609111645p:plain
  4. [License text:]で「I accept...」を選択して[Finish]ボタンでインストールする
  5. Eclipseの再起動を促されるので再起動する

EclipseTomcatを設定します。

  1. 環境を設定します。
  2. [Windows] > [Preferences] > [Tomcat] > [Tomcatバージョン] > [Version 8.X]を選択します。
  3. [Tomcat ホーム] > [Browse...]ボタン > 「/Applications/apache-tomcat-8.0.23」を選択します。
  4. コンテキスト宣言モードを選択します。
    • f:id:ponsuke_tarou:20180302001451p:plain

「コンテキスト宣言モード」は、コンフィグレーションファイルの選択となります。
「server.xml」を選択すると、\conf\server.xml にアプリケーションコンテキストの設定が更新されます。
「コンテキストファイル」を選択すると、指定したディレクトリ(デフォルトは \conf\Catalina\localhost)にアプリケーションコンテキストの設定ファイル(プロジェクト名.xml)が作成されます。
proenomichi.blogspot.jp

  1. Eclipseに設定されているJavaのバージョンを確認します。
    1. [Windows] > [Preferences]で[Preferrence]ダイアログを開きます。
    2. [Java] > [Installd JREs]を開いて、インストールしたTomcatに合ったものがdefaultになっていることを確認します。
  2. サーバを追加します。
    1. [Servers]タブを表示してリンクをクリックします。
      • f:id:ponsuke_tarou:20180302002753p:plain
    2. [Apache] > [Tomcat v8.0 Server]を選択して、[Next>]ボタンを押下します。
      • f:id:ponsuke_tarou:20180302002758p:plain
    3. [Tomcat install directory:]の[Browse...]ボタンを押下してTomcatが置いてある「/Applications/apache-tomcat-8.0.23」を指定します。
    4. [JRE:]で「Workbench default JRE」を選択します。
      • f:id:ponsuke_tarou:20180304135740p:plain
    5. [Finish]ボタンを押下すると[Server]にTomcatが追加されます。
      • f:id:ponsuke_tarou:20180302002807p:plain
  3. アプリケーションを動かしてみます。
    1. [Project] > [Clean...] を押下してプロジェクトをクリーンします。
    2. [Package Exploer]でプロジェクトを選択して右クリックします。
    3. [Run As] > [Run on Server] を押下するとダイアログが表示されます(されないこともあります)。
    4. ダイアログで Tomcat を選択して [Finish] を押下します。
      • 毎回、同じサーバを使用するのであれば「Always use this server when running this project」にチェックを入れておきます。
    5. http://localhost:8080/{プロジェクトの名前}/ にアクセスすると「Hellow World!!」が表示されました。
      • f:id:ponsuke_tarou:20180615141014p:plainf:id:ponsuke_tarou:20180615141039p:plainf:id:ponsuke_tarou:20180615141223p:plain

f:id:ponsuke_tarou:20210123105118j:plain
台東区の帝国湯(お湯が尋常じゃなく熱い)

Windowsの場合

  • 環境
    • Windows10 Pro 64bit
    • Eclipse Version: Oxygen.3a Release (4.7.3a)

qiita.com

Tomcatを配置します。

  1. Apache Tomcat® - Apache Tomcat 8 Software Downloadsのサイトからzipファイルをダウンロードする
    • f:id:ponsuke_tarou:20210123105520p:plain
  2. 任意のフォルダに解凍する
  3. 起動してみる
    1. startup.shで起動する
      • f:id:ponsuke_tarou:20210123105558p:plain
        初回の起動の場合はダイアログが表示されるので[アクセスを許可する]ボタンを押下する
  4. http://localhost:8080/ をブラウザで表示して起動することを確認する
    • f:id:ponsuke_tarou:20210123105643p:plain
  5. shutdown.shで停止する
# startup.shで起動する
$ /path/to/apache-tomcat-8.5.47/bin/startup.sh
Using CATALINA_BASE:   /path/to/apache-tomcat-8.5.47
Using CATALINA_HOME:   /path/to/apache-tomcat-8.5.47
Using CATALINA_TMPDIR: /path/to/apache-tomcat-8.5.47/temp
Using JRE_HOME:        /path/to/Java/jdk1.8.0_231/
Using CLASSPATH:       /path/to/apache-tomcat-8.5.47/bin/bootstrap.jar:/path/to/apache-tomcat-8.5.47/bin/tomcat-juli.jar
Tomcat started.

# shutdown.shで停止する
$ /path/to/apache-tomcat-8.5.47/bin/shutdown.sh
Using CATALINA_BASE:   /path/to/apache-tomcat-8.5.47
Using CATALINA_HOME:   /path/to/apache-tomcat-8.5.47
Using CATALINA_TMPDIR: /path/to/apache-tomcat-8.5.47/temp
Using JRE_HOME:        /path/to/Java/jdk1.8.0_231/
Using CLASSPATH:       /path/to/apache-tomcat-8.5.47/bin/bootstrap.jar:/path/to/apache-tomcat-8.5.47/bin/tomcat-juli.jar

EclipseTomcatを設定します。

  1. Eclipseを起動する
  2. f:id:ponsuke_tarou:20210123105900p:plain
    [ヘルプ] > [Eclipseマーケットプレース] > [検索] > 「tomcat」で「Eclipse Tomcat Plugin」を検索してインストールする
  3. f:id:ponsuke_tarou:20210123110104p:plain
    Eclipseの再起動が促されるので再起動するとTom猫マークが表示される
  4. [設定]ダイアログ > [Tomcat] > [Tomcatバージョン] > [Version 8.X]を選択
  5. [Tomcat ホーム] > [参照...]ボタン > Tomcatを解凍したフォルダを選択
  6. [コンテキスト宣言モード] > [コンテキスト・ファイル]を選択
  7. [適用して閉じる]ボタンで[設定]ダイアログを閉じる
  8. [サーバー]タブ > 右クリック > [新規] > [サーバー] > ダイアログを表示
    • f:id:ponsuke_tarou:20210123110213p:plain
      まだサーバを何も設定していなければリンクが表示されるので、そのリンクをクリックするとダイアログが表示される
  9. [Apache] > [Tomcat v8.8 Server]を選択 > [次へ>]ボタン
  10. [Tomcatインストール・ディレクトリー:] > [参照...]ボタン > Tomcatを解凍したフォルダを選択
  11. [JRE:] > インストールしたTomcatに合ったバージョンを選択(Apache Tomcat® - Which Version Do I Want?) > [完了]ボタンでTomcatを追加する
  12. [サーバー]タブに表示されたTomcatをダブルクリック > [ポート] > 変更の必要があれば変更する(他のサーバと被らない様にする等)

f:id:ponsuke_tarou:20210123112202j:plain
荒川区の帝国湯

失敗したこと

Java/bin/java: No such file or directory

# shutdown.shを実行したら怒られました。
$ /path/to/apache-tomcat-8.5.47/bin/shutdown.sh
Using CATALINA_BASE:   /path/to/apache-tomcat-8.5.47
Using CATALINA_HOME:   /path/to/apache-tomcat-8.5.47
Using CATALINA_TMPDIR: /path/to/apache-tomcat-8.5.47/temp
Using JRE_HOME:        /c/Program Files (x86)/Common Files/Oracle/Java
Using CLASSPATH:       /path/to/apache-tomcat-8.5.47/bin/bootstrap.jar:/path/to/apache-tomcat-8.5.47/bin/tomcat-juli.jar
/path/to/apache-tomcat-8.5.47/bin/catalina.sh: line 520: /c/Program Files (x86)/Common Files/Oracle/Java/bin/java: No such file or directory

Could not contact [localhost:8005]. Tomcat may not be running.

# shutdown.shを実行したら怒られました。
$ /path/to/apache-tomcat-8.5.47/bin/shutdown.sh
Using CATALINA_BASE:   /path/to/apache-tomcat-8.5.47
Using CATALINA_HOME:   /path/to/apache-tomcat-8.5.47
Using CATALINA_TMPDIR: /path/to/apache-tomcat-8.5.47/temp
Using JRE_HOME:        /path/to/Java/jdk1.8.0_231/
Using CLASSPATH:       /path/to/apache-tomcat-8.5.47/bin/bootstrap.jar:/path/to/apache-tomcat-8.5.47/bin/tomcat-juli.jar
11 12, 2019 10:49:04 ▒ߑO org.apache.catalina.startup.Catalina stopServer
▒d▒▒: Could not contact [localhost:8005]. Tomcat may not be running.
11 12, 2019 10:49:04 ▒ߑO org.apache.catalina.startup.Catalina stopServer
▒d▒▒: Catalina.stop:
java.net.ConnectException: Connection refused: connect
        at java.net.DualStackPlainSocketImpl.connect0(Native Method)
        at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
...省略...
<!--変更前-->
<Server port="8005" shutdown="SHUTDOWN">
<!--変更後-->
<Server port="8080" shutdown="SHUTDOWN">

The CATALINA_HOME environment variable is not defined correctly

# バッチを使ったら怒られた。
$ /path/to/apache-tomcat-8.5.47/bin/startup.bat
The CATALINA_HOME environment variable is not defined correctly
This environment variable is needed to run this program

次は、Spring MVC の設定をしていきます。

ponsuke-tarou.hatenablog.com