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も一緒にとか。