OOWeb
Javaの軽量WebコンテナOOWebについて調べてみた.現在最新バージョンが一年前にでた0.7.1ということで,開発止まっちゃってるのかもしれないので,心配なのだけど,他に代替になりそうなものも見当たらないので.
OOWebはPythonによるWebコンテナCherryPyにinspireされたもので,オブジェクトをURLにマップし,そのURL以下のURLが,オブジェクトのメソッドにマップされるもの.CherryPyの場合はFORMの引数が,名前付き引数として引き渡されるが,Javaには名前付き引数はないので,その辺の扱いは結構違う.Basic認証,クッキー,セッションなど,すぐに必要になるものは一通りある.
ダウンロードとインストール
0.7.1を上記サイトからダウンロード.ソースとバイナリがあるが,とりあえずソースで.tar zxvf で解凍して,ant で target/dist
/ooweb-0.7.1.jar ができる.lib 以下にも必要なjarが含まれているので,これを合わせてCLASSPATHに入れればインストール完了.
HelloWorld
index.htmlにHello Worldを返すサンプルはこんな感じ.mainがExceptionをthrowするようになっているが,これは,PygmyServerがExceptionを投げるから.なんともまあ,お行儀の悪いことだ.
import net.sf.ooweb.Server; import net.sf.ooweb.http.pygmy.PygmyServer; import net.sf.ooweb.annotations.Controller; @Controller("/") public class FirstPage { public static void main(String[] args) throws Exception { Server s = new PygmyServer(); s.addController(new FirstPage()); s.start(); } public String index() { return "<h1>Hello World </h1>"; } }
クラス定義の前のアノテーションControllerで,このクラスのオブジェクトがマップされるpathを指定している.