Apache・Tomcat間のURL連携まとめ(2)
今回のゴールは、
「CL側に用意したクライアントアプリより構築したサーバに対してリクエスト(GET)を投げると、独自に設定されたヘッダ"X-Sample01"に値として"aaa"が設定されていること・HTTPステータスコード200が返却されることを確認する」
であるので、上記の処理を行うサーブレットクラスを作成する。
ただしサーブレットクラス作成前に、資産の構成・作成順序を先におさえる。
【サーブレットクラスを含む資産の構成】
登場人物としては、
・warファイル(EchoServlet.war)
・jarファイル(SV.jar)
・classファイル(EchoServlet.class)
の3ファイルとなる。※マニフェストファイル等の直接編集しないファイルは除外。
warファイルの内部では、1つのwarファイル内に1つのjarファイル、その中に1つのサーブレットクラス、という構成にする。
※warファイルの内部仕様についてはこの記事では触れない。
【サーブレットクラスを含む資産の作成順序】
①サーブレットクラスを含むTomcatプロジェクト(SV)の作成・およびサーブレットクラス(EchoServlet.class)作成。
②サーブレットクラスを含むTomcatプロジェクト(SV)をjarファイル(SV.jar)にてまとめる。
→jarファイルの内部にEchoServlet.classがあればOK
③warファイル(EchoServlet.war)とするTomcatプロジェクト(EchoServlet)を作成し、プロジェクトのWEB-INF>libにjarファイル(SV.jar)を置く。
④Tomcatプロジェクト(EchoServlet)をwarファイルにてまとめる。
→warファイルの内部にSV.jarがいればOK
※jarファイル・warファイルの作り方は「Eclipse jar エクスポート」「Eclipse war エクスポート」とかで調べてください。
【サーブレットクラスの概要】
1.doGetのみ実装。
2.メソッド内では標準出力に"doGet!"を出力するとともに、レスポンスに独自のヘッダ値"X-Sample01"に値として"aaa"を設定する。
3.返却するHTTPステータスコードは200
コードは以下のとおり。
package echo; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class EchoServlet extends HttpServlet{ private static final long serialVersionUID = -7899921075179227528L; public void doGet(HttpServletRequest request,HttpServletResponse response){ System.out.println("doGet!"); // レスポンスに独自ヘッダ追加 response.addHeader("X-Sample01", "aaa"); // HTTPステータスコード200設定 response.setStatus(HttpServletResponse.SC_OK); } }
※パッケージ名・クラス名は変更してもいいですが、Tomcatの設定の際に必要となるので注意してください。
Eclipseでここまでに登場したファイルを作ると、このようになる。
※プロジェクト「EchoServletCliant」はまだ作らなくてOK