Apache・Tomcat間のURL連携まとめ(5)
(1)~(4)ではApache-Tomcat間のURL連携に使用する定義のうち、Tomcat側の定義を「web.xml」で行っていたが、Servlet3.0からの機能 Annotation based configuration(以下アノテーション)を利用してみる。
【参考】
http://codezine.jp/article/detail/5920
→@WebServletアノテーションを使う。
【今回の記事のゴール】
Apache・Tomcat間のURL連携まとめ(2)で使用したソースを流用して、
クラス名とApache・Tomcat間で使用するURLを変更して動く状態にする。
ただしTomcat側の変換定義は「web.xml」でなくアノテーションを使用する。
先にweb.xmlを使用した場合とアノテーションを使用した場合を絵で比べてみる。
「web.xmlを使用した場合」
「アノテーションを使用した場合」
【編集する資産・手順】
1.[Apache]httpd-proxy.conf(またはhttpd.conf)を編集する。
今回ブラウザに入力するURLは「http://(サーバ名)/webservlet/200/」とする。
ファイル名:httpd-proxy.conf(またはhttpd.conf)
入力内容:
<Location /webservlet/200/>
ProxyPass ajp://(サーバ名):8009/EchoServlet/WebServlet/1.0/200/
→(サーバ名)はサーバ内のapacheの定義(httpd.conf)を参照する。だいたい「localhost」。
</Location>
2.サーブレットクラスを用意する。今回用意するクラスは以下の通り。
クラス名:EchoServlet_WebServlet
クラス名に設定するアノテーション:@WebServlet(urlPatterns={"/WebServlet/1.0/200/"})
↑前後の「/」がないと使用する資産の指定位置が変わってしまうので忘れないようにする。自分はハマった。
資産をApache・Tomcat間のURL連携まとめ(2)で使用したプロジェクトに含めると以下のようになる。
3.Tomcatの設定は特に変更する必要はない。用意するべきは以下のコンテキストファイルのみ。
ファイル名:EchoServlet.xml
ファイル内容:
<Context path="/EchoServlet" />
4.クライアントのブラウザより「http://(サーバ名)/webservlet/200/」にアクセスする。
→空白のページが表示されればOK。