Twitterのアンケートでアンケート取ったら、思いのほか票が分かれてしまって、何するか悩んでいるhappa64です。

ちなみにさっきのアンケート↓

今日はTomcatのxmlファイルのコメントに振り回されたので、備忘録として殴り書きします。
いつもの風花雪月や仮面ライダーではなく、専門的な話になります(といっても子供用プール並みに浅いが)ので、エンジニアの方以外は私の色違い配信でも眺めていてください。
専門的な話には興味ねーって方はこちら↓
https://youtu.be/60_-qQv_m_I

今回のプロジェクトでは、バージョンが異なる二つのモジュールをいつでも見れるようにしないといけないという状態でした。

テストURLからシステムにアクセスしたとき、Tomcat内でa.xmlという設定ファイルを使い、「機能Cを実装してないシステムB」と「機能Cを実装しているシステムB’」にいつでもアクセスできるようにしないといけません。
システムBとシステムB’への切り替えは、a.xmlにかいたクラスパスを変更することで行います。
※この時のxmlのクラスパスの書き方がちゃんとあったのですが、覚えてねーです(ちゃんと覚えとけ)

イメージとしては

これが

こう!

プロジェクト運営にあたって、システムの切り替えはコメントアウトで行う方が楽だと考えたため、a.xml内にクラスパスを二つ書き、xmlファイルのコメントアウトである「<!– –>」を使って切り替えることにした。

設定ファイルa.xmlをこんな感じで書いた
※画像はイメージです。。ホントはもっとちゃんと書いてありました。。。

これでeclipseを使ってTomcatを起動させようとしたら、「致命的: 設定記述子 a.xml を配備中のエラーです」とエラーが返却され、Tomcatが起動しなかった。

この「配備中のエラーです」というキーワードで調べても俺の求めている情報が見つからず、ログが示していた場所を見たら、ちょうどコメントアウトしていたところだった。

「まかさ」と思って調べたところ、xml拡張子のコメントアウトは、「xml宣言より前に書くことができない」とあった。

ちなみに、xml宣言を書くときはこう書くらしい↓
書き方がhtmlに似てる
※画像はイメージだべべ

書き換えたa.xmlはxml宣言なんて書いてなかったので、試しに、コメントアウトした個所(ここではシステムB’へのクラスパス)を全部消してみた。

そうすると何事もなかったかのようにシステムBにアクセスできた。

いっそのことシステムごとに設定ファイルを作ってしまおうと思い、それぞれのクラスパスを書いた設定ファイルを作り、切り替えるごとに差し替えることにした。

なので、イメージとしては

これが

こう!

xmlのコメントアウトで時間がとられるとは思わなかった。
クラスパスのコードちゃんと覚えます。。。

参考
https://www.javadrive.jp/xml/ini/index5.html

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください