ハジカラ 〜はじめからでも、プログラミング勉強〜

入門向けに、IT関連(javaやKotlin)をコツコツ書いたり検証したりします。

Tomcatのinvoker設定に関して

calendar

こんにちは😀

今回は、Tomcatのinvokerという設定に関して書きます。
Tomcatのバージョン5まで実装されていた機能とのことで古い設定になります。
Tomcatのバージョンを上げる際に、この機能が使えなくなり手間取ったので備忘録として残します。

Tomcatに関しては、以前こちらでも書いたので参考にしてください。

スポンサーリンク

invokerとは

Tomcatのようなサーブレットコンテナには、web.xmlにサーブレットを呼び出す記述が必要になります。
サーブレットはjava servletのことで、httpとjavaの処理を橋渡しする役目を担っています。
そしてサーブレットを使用するにはサーブレットコンテナへの登録が必要になります。

invokerとは、Tomcatバージョン5以前にあるweb.xmlにサーブレットを記述しなくてもサーブレットを使用できる機能です。
ただ、バージョン5ではデフォルトではinvokerを使用できないので、string.xmlのinvoker設定のコメントアウトを外せば使用することができます。

現状のバージョンでは使用しないことと、ベージョン5ではコメントアウトによってデフォルトでは使用できないことから察するに、あまり好ましくない機能ということなのかと思われます。

invokerが使われていた場合

バージョン4以前で、invokerが使用されていた場合は、工数を考えるとそのままの使用でいいかと思います。
また、バージョン3からバージョン5にバージョンアップする際には、(バージョン3でinvokerが設定されている場合)string.xmlのinvokerのコメントアウトを外してinvokerを使用できる状態にするのもありかとは思います。

もし、invokerが設定されているバージョン5以前のTomcatをバージョン6以降にバージョンアップする場合には、web.xmlにサーブレットの登録を行います。

その場合は、以下のように<servlet>タグを使ってサーブレット名を登録することと、

<servlet-mapping>タグを使ってサーブレットの呼び出しを登録する必要があります。

大変なのは、サーブレットクラス全ての登録が必要になるということです。

作成したサーブレットが数個であれば大変ではありませんが、数十や数百個あると工数をかける必要が出てきます。
単純作業ではありますが、使用しているサーブレットの洗い出しと上記二種類のタブの記述が必要になり、web.xmlの記述自体も長くなります。
タブ記述の作成に関しては、エクセルでの編集やVBAでマクロを組むのもありかと思います。

ただメリットとしては、サーブレットの登録を視認できることと呼び出し箇所が確認できることです。
保守性を求めるならコツコツとweb.xmlに追記していくのが良いかと思います。

今回の一言・・・

自分は、今後のサーブレットクラスの変更や追加も考えて、VBAを作ってweb.xmlへの記載を楽にしました。
Tomcatは、このようにバージョンによる仕様の変更(使えた機能が使えなくなった)がちょいちょい見受けられるので仕様の確認を意識していきます。

今回はここまで🤚

では、また次回。