あまり実用性は高いとはいえないと思うのだが、mac で軽くサーバーサイド Java をやりたい場合、tomcat 環境があると便利だ。
「もう Java の時代でもないでしょう」的な雰囲気がそこはかとなく漂っているせいなのかネット上にあまりこの手の情報は見つからなかった。
なので、軽くまとめ。
0. 準備
当たり前ですが Java 開発環境を作っておきましょう。
『M1 Mac に M1(Arm) 対応の JDK をインストールする』
あたりを参考に。
1.インストール・動作確認
ようやく M1 Mac でも homebrew がマトモに動くようになってきたので、今回は homebrew 経由で tomcat を入れます。
おなじみ
brew install tomcat
コマンドでインストール。
tomcat 自体はユーザー(管理者)登録しなくともとりあえずは走る。
brew services start tomcat
でサービスを開始したあと、ブラウザで http://localhost:8080 にアクセスするとwelcome 画面(アイキャッチ参照)が表示される。こうなればOK。
サービス終了は
brew services stop tomcat
とする。
2.ユーザー登録する
自前のプログラムをデプロイする場合に必要になってくるので、tomcat にユーザーを登録する。
tomcat を homebrew 経由で導入した場合、現在(2022/4)だとその実体諸々は
/opt/homebrew/Cellar/tomcat/
にある。
設定ファイル関係は
/opt/homebrew/Cellar/tomcat/(version)/libexec/conf
以下にある。
このうち tomcat-users.xml に以下の記述を追加。
<user username="username" password="password" roles="manager-gui" />
tomcat 起動後、上で設定したユーザー名とパスワードで管理画面に入れるようになります。
3.なにはともあれ Hello World!
環境が整ったら、とりあえず何か簡単なプログラムをデプロイしてみたい。
テキストエディタで .jsp だのをガシガシ作成していってもいいんでしょうが、ファイル構成(ディレクトリ構造とでもいうのでしょうか META-INF 以下にこれこれを置いてというアレ)がよくわかってないので、NetBeans にまかせましょう(手抜き)。
NetBeans 起動後、File >> New Project.. でプロジェクト作成。
Web Application を選択。あとは、ダイアログの指示に従う。
デフォルトで Hello World! してくれるコードが書かれているので、なんも考えずにビルド。
BUILD SUCCESS するとプロジェクトフォルダに target フォルダがつくられ、その中に
プロジェクト名-version.war
というファイルができている(はず)。
これを tomcat 管理画面からデプロイ。
手持ちのブラウザで URL: http://localhost:8080/プロジェクト名-version/ にアクセスすると以下のようにハロワールドしてくれる。
めでたしめでたし。
【追記】めでたしめでたし、とは書いたが、その後、servlet の簡単なコードを書いて tomcat 環境にデプロイするとなぜかエラーが出る。ところがこの .war ファイルを wildfly 環境に持ってくると全く正常に動作する。
原因よくわからず。
【追記2】tomcat の version 8 にすると正常動作しました。
サンプルコード&解説は『【Mac】ハロワールドっぽいページを複数作って遷移の確認【Servlet】』で。使用したコードは GtHub に公開しています。
“Mac で tomcat” への2件の返信