Tomcat5.0でルートページをサーブレットに

http://example.com/
とかドキュメントルートでサーブレットに飛ばす方法。

http.confの設定

Apache mod_jk + Tomcat
なので、http.confに以下を追加。
片方だとダメ。これですべてのリクエストがTomcatへ渡る。
(というかそれならTomcatをポート80にあげればいいじゃんという意見もあると思うが、今回はVirtualHost使ってるのでそれはできなかった)

  JkMount  / ajp13
  JkMount  /* ajp13

Contextのxmlを配置

$CATALINA_HOME/conf/Catalina/localhost
myservlet.xmlを配置

<Context path="/" docBase="myservlet" debug="0">
</Context>


んで、まだ動かない。以下落とし穴2つ。

落とし穴1 webapps/ROOTが悪さをしていた。

webapps/ROOTが先にルートページを奪っていたのでディレクトリごと消した。

落とし穴2 画像とかが出ない

web.xmlを以下のようにしてたのだが、画像がまったくでない。

<servlet-mapping>
	<servlet-name>myservlet</servlet-name>
	<url-pattern>/</url-pattern>
</servlet-mapping>

どうも画像とかのリクエストも全部サーブレットに渡されている模様。
そこで以下のようにして、ルートにアクセスしたときにサーブレットにアクセスするようにした。

<servlet-mapping>
	<servlet-name>myservlet</servlet-name>
	<url-pattern>/myservlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
	<welcome-file>myservlet</welcome-file>
</welcome-file-list>