1. ホーム
  2. tomcat

[解決済み] Tomcat 7.0でのWebアプリケーションのコンテキストパスの設定方法

2022-04-23 11:37:20

質問

ウェブアプリ(またはその WAR ファイル)の名前を次のように変更できることは知っています。 ルート しかし、これはひどい方法だと思います。tomcatのドキュメントをチェックしたところ、次のように書かれていました。

の中に直接要素を置くことはお勧めしません。 server.xmlファイル

そこで、提案された別の方法でやってみました。

個々のContext要素は、明示的に定義することができる。個々の アプリケーションファイル内の/META-INF/context.xmlにある個々のファイルです。

そこで、私は /META-INF/context.xml を次のようなコードで記述します。

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/"/>

しかし、デプロイ後、サーバーを再起動すると、まだ "/" のコンテキストを読み込むことができません。 "/<WEB_APP_NAME>"

何かご指摘がありましたらお願いします。

解決方法は?

できることは、以下の通りです。

というファイルを追加します。 ROOT.xml<catalina_home>/conf/Catalina/localhost/

この ROOT.xml は、そのエンジンとホスト(Catalina と localhost)の tomcat インストールのルートコンテキストのデフォルト設定をオーバーライドします。

ROOT.xmlファイルに以下を入力します。

<Context 
  docBase="<yourApp>" 
  path="" 
  reloadable="true" 
/>

ここです。 <yourApp> は、まあ、あなたのアプリの名前です... :)

これで、あなたのアプリケーションはデフォルトのアプリケーションとなり、次のように表示されるようになりました。 http://localhost:8080

ただし、副作用として、アプリケーションが2回読み込まれます。一度は localhost:8080localhost:8080/yourApp . これを解決するには、アプリケーションを <catalina_home>/webapps で、ROOT.xmlのdocBaseタグに相対パスまたは絶対パスを使用します。このようなものです。

<Context 
  docBase="/opt/mywebapps/<yourApp>" 
  path="" 
  reloadable="true" 
/>

そうすれば、すべてOKになるはずです