Web系開発メモ

Java, JavaScript, CSS, HTML など、Webアプリの記事を中心に書いています。

Kaze:Javaフレームワーク(開発記録2018.02.24)

Kaze という Java の Web フレームワークを開発していて、先日バージョン 0.2.6 をリリースしました。

前回 は 組込みJetty を使ったサンプルを書いたんですが、今回はサーブレットコンテナで動かすサンプルを書いてみようと思います 。

サンプル

サンプルのコードは、kaze-samples/war に置いてあります。

依存性の追加

pom.xml に、以下の依存性を追加します。

  <dependencies>
    <dependency>
      <groupId>com.github.mamorum</groupId>
      <artifactId>kaze</artifactId>
      <version>0.2.6</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

今回は組込み Jetty を使わないので、依存性に追加しなくて大丈夫です。

サーブレットの作成

Kaze の App クラスを継承する感じで作成します。

package kaze.sample.war;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;

import kaze.App;

@WebServlet("/app/*")
@SuppressWarnings("serial")
public class SyncAppServlet extends App {
  public void init() throws ServletException {
    get("/hello", (req, res) -> {
      res.write("text/plain", "Hello.");
    });
  }
}

リクエス/app/hello に対して、文字列 Hello. を返すようにしています。

War の作成

Maven コマンドで kaze-sample.war を作成します。

> mvn package

※ 完全版の pom.xml は、こちら にあります。

War の配備と起動

作成した war を配備して、コンテナを起動します。Tomcat であれば、webapps ディレクトリに war を置けば大丈夫です。

動作確認

Tomcat の場合、http://localhost:8080/kaze-sample/app/hello にアクセスすると文字列が返ってきます。

開発方針

開発方針は、前回の記事 で書いたものとほぼ変わりないです。

JSON を返せる API も用意しているので、次回はそのサンプルを書きたいと思っています。JSON の変換(オブジェクト ⇔ 文字列)方法やパーサは、好きなものを選べるようにしています。Gson、 Jackson、独自実装など、なんでも大丈夫な感じです。