Tomcat 5.5 を使用していますが、次のことを行いたいと考えています。
2 つの Web アプリケーションがデプロイされている場合 (それらをfooとbarにします)、相対パスとエイリアスの両方でそれらにアクセスできるようにしたいと考えています。
localhost:8080/foo -> foo およびfoo.example.com -> foo
そしてそれぞれ
localhost:8080/bar -> bar およびbar.example.com -> bar
エンジン内で異なるホストを使用し、エイリアスを提供すると (ドキュメントに記載されているとおり)、エイリアス URL は正常に機能しますが、相対 URL は機能しません。両方を適切に機能させるには、追加のホスト「localhost」が必要で、同じコンテキストを再度宣言します。ここに私のserver.xmlがあります
<Engine name="Catalina" defaultHost="localhost">
<Host name="foo.example.com">
<Context docBase="webapps/foo" path="" workDir="work/Catalina/foo/_"/>
<Alias>foo.example.com</Alias>
</Host>
<Host name="bar.example.com">
<Context docBase="webapps/bar" path="" workDir="work/Catalina/bar/_"/>
<Alias>bar.example.com</Alias>
</Host>
<Host name="localhost" appBase="webapps" autoDeploy="false" >
<Context path="foo" workDir="work/Catalina/foo/_" />
<Context path="bar" workDir="work/Catalina/bar/_" />
</Host>
</Engine
このように動作しますが、Tomcat は各コンテキストを 2 回ロードしているようです。これを達成する他の方法はありますか?