概要
- 知り合いが勉強会のためJavaのWebアプリを、サーバーに展開することになった。
- 知り合いも私もJavaのWebアプリをサーバに展開する方法を知らなかったので、練習用にUbuntuでTomcat8が動くようにして、そこに展開できるようにした。
- WindowsのEclipseで作ったプロジェクトを、LinuxのTomcat上に展開できるようになった。(WARファイルを利用)
- 似たような手順は散見されるが、単一のページでEclipseからUbuntu上のTomcatに移行する手順は見当たらなかったのでメモしておく。
こういう人に役に立つ
- 教本とか読んでEclipse上でJavaのWEBアプリ作れるけど、サーバがよくわからないからサーバへ展開できない。
- 細かいことはさておき、Tomcat触ってなんとなく使えるようにしたい。
紹介すること
- Ubuntu16.04でTomcatをセットアップする方法
- Tomcatマネージャのインストール
- Eclipseで作ったWEBアプリのエクスポート(WARファイル)
- TomcatマネージャへWARファイルのインポート
Ubuntu16.04でTomcatをセットアップする方法
上記の手順まんまだが、
JDKのインストール
Javaを動かすのにJDK(Java Development Kit)が必要なので入れる
簡単のためPPA(非公式の個人リポジトリ)を使ってるので楽。
仕事などでしっかりやるときとかは公式リポジトリを使う。
sudo add-apt-repository ppa:webupd8team/java
# リポジトリを追加
sudo apt-get update
# 追加したリポジトリからパッケージリストを取得する
sudo apt-get install oracle-java8-installer
# JDKをインストール
sudo apt-get install oracle-java8-set-default
# Javaの環境変数を設定するパッケージをインストール
Tomcat8のインストール
(2017年3月時点で)
Tomcatのバージョンはもっと新しいのもあったりするけど、
apt-getでさくっと入れられる最新は8までみたいなので、ここでは8で
sudo apt-get install tomcat8
Tomcatのバージョンを上げると、使えるJavaの機能が増えたり性能が上がったりする様子。
対応しているJDKのバージョンも変わるよう。
インストールしたら自動でTomcatが立ち上がる。
インストールできたら確認
ブラウザのアドレスバーに以下を打つと
http://サーバのIPアドレス:8080
でTomcatが動いてるのが見える。(テストページ)
ちょっと満足。
Tomcatマネージャのインストール
Tomcatを使うのにManagerというものも入れると、この後やるWARファイルのインポートができて便利
sudo apt-get install tomcat8-admin
入れるだけだと、Manegerページにログインできるアカウントがないため使えないので、
/etc/tomcat8/tomcat-users.xml
にアカウントを追加する。
tomcat-users
のタグの部分に
<user username="admin" password="pass" roles="manager-gui"/>
の形式で追加。(manager-guiのroleを持ったアカウントを追加する。)
<!--
と-->
の間はコメントアウトなので、コメントアウトの外に書く。
(当然のことながら、よく読まないで追記してハマりそうになった)
こんな感じ
<?xml version='1.0' encoding='utf-8'?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<!--
NOTE: By default, no user is included in the "manager-gui" role required
to operate the "/manager/html" web application. If you wish to use this app,
you must define such a user - the username and password are arbitrary.
-->
<!--
NOTE: The sample user and role entries below are wrapped in a comment
and thus are ignored when reading this file. Do not forget to remove
<!.. ..> that surrounds them.
-->
<user username="好きなアカウント名を入れてね!" password="好きなパスワードを入れてね!" roles="manager-gui"/>
</tomcat-users>
書き込みしたらtomcatに変更を反映するため、リスタート
sudo service tomcat8 restart
Tomcat manegerが入ったか確認
http://サーバのIPアドレス:8080/manager/html
でManagerページにアクセスできる。(さっき登録したID/PWでログイン)
とりあえず見るだけ。
Eclipseで作ったWEBアプリのエクスポート(WARファイル)
Eclipse(統合開発環境)での開発のナレッジは世の中にたくさん落ちてる。
UbuntuにTomcat入れてそこでJavaの開発やろうとするとPATHとかいろいろややこしい。
(最初、Tomcat単体でJavaアプリの環境作ろうとしたらややこしくてドハマりした。)
Eclipseの中で作る → 出来上がったものをTomcatにインポートする、が楽そう。
(参考)Java+Eclipse 開発環境構築 Windows編
など参考にEclipse環境を用意して、ローカルマシンでWebアプリが動くところまで開発する。
スッキリわかるサーブレット&JSP入門 スッキリわかるシリーズ
が昔やったけどわかりやすかったです。
EclipseからWARファイルをエクスポートする。
Eclipseでものが作れるようになった後、
Eclipseで作ったものをどうやって外のTomcatに取り込めばいいねーん!
って最初思うと思う...思うよね?。(私は思った。)
ファイル1個とかならまだしも、importとかやり始めてディレクトリ構造複雑だとTomcatに持ち込むのえぐい。
でも、大丈夫。
EclipseでWebアプリが出来上がったら所定の形式でエクスポートして、
Tomcatにインポートすればそのまま動く。
やり方はEclipseのファイル
→ エクスポート
→ WEB
→ WARファイル
と選択してWARファイルのエクスポート画面へ
プロジェクト名と出力先を選択したら完了
でWARファイルがエクスポートされる。
TomcatマネージャへWARファイルのインポート
ここでTomcat Managerに戻る。
http://サーバのIPアドレス:8080/manager/html
の配備
のWARファイルの配備
からTomcatにインポートできる。
ファイルを選択
でさっき出力したWARファイルを選択すればOK
確認
http://サーバのIPアドレス:8080/プロジェクト名/ページ名
でアクセスできるようになっている。
(プロジェクト名、ページ名はEclipseでローカルマシンで動かしていたのと一緒)
お疲れ様でした。
Eclipseで作ったWEBアプリがUbuntu上のTomcatで表示できるようになりました。
よかったよかった。
今回はTomcatで動かせるかの確認用途だったのでそこまでやってませんが、世間に公開するときはApacheとTomcatを連携させてやるらしいです。(Apacheがhttpdの仕事を任せる)
思う
↑ Tomcatさん初心者殺し過ぎる気がする。