いろいろなやり方があったり、少しの違いで正しいやり方が違ってきたりしそうですが探り探りやっていきます。
前提
環境など
私の全く同じ環境になっている人もそうそういないでしょうから前提条件を確認です。
同じようなことをやろうとしている方の助けにというよりは私がやってみたいだけです。
・ホストOS:Windows10
・IDE:Eclipse
・プロジェクトタイプ:Mavenプロジェクト
・フレームワーク:TERASOLUNA(Spring)
・サーバ(ゲストOS):Linux(CentOS7)@VirtualBox
・Tomcat:Tomcat9
・JDK:OpenJDK11
過去記事で作成したものを再利用する形になっています。
開発プロジェクト関連は以下。
www.wantanblog.com
www.wantanblog.com
Linuxサーバ関連は以下。
www.wantanblog.com
やること
Eclipse上で作成したJavaのサンプルプロジェクトをwarファイル化。
warファイルをVirtualBox上のTomcatにデプロイし、ホストマシンのブラウザからサンプルプロジェクトを参照できるようにします。
Mavenプロジェクトのwarファイル生成
やり方はいろいろあるのでしょうが以下の方法で実施しました。
事前確認
対象プロジェクトの「pom.xml」の設定を確認します。
Eclipseからじゃなくてもよいですが、パッケージタグがwarになっていることを確認します。なっていない場合は修正する必要があるはず。
※私の場合は最初からwarになっていました。
<packaging>war</packaging>
コマンドプロンプトを開き、対象プロジェクトに移動する。
私の場合は以下の通り。
cd C:\todo
パッケージングコマンドを実行する。
mvn package
少し時間がかかりましたが「BUILD SUCCESS」が表示されるまで待ちます。
warファイル自体は実行結果に示されているようにtarget直下に生成されるようです。
一旦生成完了???あっさりだな。
warファイルをTomcatにデプロイ
warファイルの配置
Linuxサーバ上のTomcatがインストールされている場所にwarファイルを配置する。
私の場合は以下の通りで、実際に配置するのはwebapps直下。
/usr/libexec/tomcat9/webapps
方法はお任せ。私はteratermのcp機能でファイルを受け渡した。
なおteratermのscp機能はroot等にスイッチしても、権限は最初にログインしたユーザの権限に依存するため置きたい場所に置けなかったりする。
まぁログインユーザのホームディレクトリに配置して移動すれば問題ないです。
追記:後から見直すとwarファイルを配置した時点でtodoディレクトリが作成されているようなので以下は実行しなくても大丈夫っぽいです。
所有者の変更
上記の方法でファイルを配置した場合、所有者がログインユーザになっているはずなのでTomcatユーザに所有者を変更しておいた。
たぶん必要だよね??
chown -R tomcat. /usr/libexec/tomcat9/webapps/todo.war
パーミッションの変更
他のディレクトリとパーミッションが異なるのが気になったので一応。必要なのかは正直分からない。やらなくても大丈夫かも??
chmod 750 /usr/libexec/tomcat9/webapps/todo.war
Tomcatの再起動
停止
systemctl stop tomcat9
起動
systemctl start tomcat9
一発の再起動コマンドってあったよね?
動作確認
ホストマシンからVirtualBoxのサーバに接続して確認してみます。
以前の環境構築にて、ループバックアドレスのポート50001でポートフォワードされるようになっていますのでまずはtomcatのデフォルト画面表示。
再起動は成功しているようだ。
次にデフォルト画面
最後にサンプルアプリの画面
http://localhost:50001/todo/todo/list/
おおお!Eclipseで表示してた通りの画面が表示されました。
インメモリの設定とか特にしなくて大丈夫なのかなぁ?と思っていましたが大丈夫なようですね。
知識が大してなくてもなんとかなるのはフレームワーク様様なのでしょうか。
次はDB連携のアプリかなぁ