読者です 読者をやめる 読者になる 読者になる

Jettyを組み込んでWEBアプリケーションを配布

スポンサーリンク

Selenium RC が サーブレットコンテナを使っているらしく、なんで jar としてWEBアプリケーションを起動できるんだーと不思議に思っていたら、Jettyだと他のアプリケーションに組み込んで使えるとのこと。
しかも、web.xmlも不要で、オブジェクトを組み立てていくような感じでサーバを起動することが出来たりします。

public static void main(String[] args) throws Exception {

  SelectChannelConnector connector = new SelectChannelConnector();
  connector.setPort(8888);
  Server server = new Server();
  server.setConnectors(new Connector[] { connector });

  // コンテキストを作成
  ContextHandler contextHandler = new ContextHandler("/");

  // サーブレットを設定
  ServletHandler servletHandler = new ServletHandler();
  servletHandler.addServletWithMapping(HogeServlet.class, "/*");

  // フィルタを設定
  servletHandler
          .addFilterWithMapping(FugaFilter.class, "/*", Handler.DEFAULT);

  contextHandler.addHandler(servletHandler);
  server.addHandler(contextHandler);

  // 起動
  server.start();
  server.join();
}

サーブレットコンテナ(Jetty)込みでWEBアプリケーションを配布するのって、使う側からしたらサーブレットコンテナをインストールする手間がなくなるので、結構いいなぁと思いました。
さらにDBとしてDerbyも一緒にとか。