ITお絵かき修行

3歩歩いても忘れないために

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つのサーブレットクラス、という構成にする。

f:id:hhhhhskw:20140428190509p:plain

※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でここまでに登場したファイルを作ると、このようになる。

f:id:hhhhhskw:20140428183249p:plain

※プロジェクト「EchoServletCliant」はまだ作らなくてOK


次はApacheTomcatの設定を行う。