(1) TomcatでEclipseを使う際にserver.xmlを編集しても上書きされる事象の対処方法
(1-1) 発生状況・エラーメッセージ
(1-2) 原因
(1-3) 対処法
(1) TomcatでEclipseを使う際にserver.xmlを編集しても上書きされる事象の対処方法
タイトルの通り、TomcatをEclipseで使用する際に、再起動したタイミングでserver.xmlがデフォルトの状態に戻ってしまい、追記した設定が先祖返りしてしまう事象の対応方法についてです。
(1-1) エラー概要
TomcatをEclipseで使う際の動的Webプロジェクトをhttps接続する方法(⇒設定手順)の手順に沿って、https接続の疎通を完了したものの、再度Tomcatを再起動したら「server.xml」に追加したはずの情報が消えており、初期状態に戻ってしまっていました
(1-2) 原因
Eclipseの大元の設定ファイルを更新していないのが原因でした。
Eclipseの挙動として、自身のworkspace配下にある「Server」プロジェクト(下図)内にある「server.xml」を使って、Eclipseの「.metadata」フォルダ内にある「server.xml」を上書きしています。
そのため、「.metadata」配下のファイルを直接更新しても、EclipseのTomcatを再起動する度に上書きされて、デグレしてしまっていました。
・大元のファイル
大元のファイルはEclipseのWorkspaceにあるServerプロジェクトの中のserver.xmlです。
(図111)
・他のserver.xmlへの影響
「server.xml」はEclipseの「.metadata」配下以外にも、Tomcat用の「$CATALINA_HOME/conf/」配下にもありますが、再起動時に上書きされるのは「.metadata」配下の方のみです。
「$CATALINA_HOME/conf/」配下の方は、Tomcatに直接アプリケーションをデプロイする際に適用される設定のため、Eclipseとは独立した設定ファイルになっています。
まとめると、次のようになります。
(表)
server.xmlのパス | 上書き | 備考 |
/home/admin/eclipse-workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/conf/ | YES (される) |
EclipseでTomcatを使う場合に使用されるserver.xmlで、通常「.metadataフォルダ内)に格納され |
/usr/local/src/apache-tomcat-8.5.55/conf/ | NO (されない) |
Tomcat自体に直接Webアプリをデプロイする際のserver.xmlです。Eclipseとは切り離された設定のため、上書きはされない。 |
(1-3) 対処法
原因の記載にもある通り、大元の設定である『workspace配下にある「Server」プロジェクト内にある「server.xml」』に設定を追記していけば良い事になります。
例として、動的Webプロジェクトをhttps接続する際に行うTomcatのポート8443の設定を追記する例をご紹介します。
下図のようなWebサイトがあり、HTTPS接続の疎通に成功したものの、Tomcat再起動の度にserver.xmlの8443ポート設定(下図の赤枠)が消失してしまう状況でした。なので、この赤枠に追記した内容をEclipseのworkspace配下のServerプロジェクト内のserver.xmlに同じ内容を追記していきます。
(図131)
↓
(図131)②
↓
(図131)③
STEP1:server.xmlを開く
Eclipseを起動し、Serverプロジェクトの中の「server.xml」を開きます。
(図132)
STEP2:server.xmlに追記
各自必要な設定を追記します。今回の例ではhttps接続をするためのポートの設定を追記します。
(例)
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1" type="RSA" keystoreFile="conf/mycertificate.cer" keystorePass="[ご自身の証明書パスワード]" />
(図133)
STEP3:Tomcatを再起動
設定を反映させるためにTomcatの再起動を行います。
(図134)
STEP4:設定ファイルのチェック&疎通テスト
先ほどは上書きされてデグレしてしまった「.metadata」配下にあるserver.xmlを確認します。今度はちゃんと追記内容が残っているはずです。
(図135)