今回は、JavaでのWebアプリ作成用のLightweight Frameworkを紹介したいと思います。
近頃話題になるJavaのフレームワークとしては、Springが挙げられますが、
規模が大きく、習熟するのに時間と労力が必要です。
巷では、Lightweight Languageと呼ばれる言語 (= PHP, Perl, Python etc)
でのWebアプリ開発のためのLightweight Frameworkがさかんに使われていますが、
JavaにもLightweight Frameworkと呼ばれるものが、いくつか存在します。
今回は、その中の Apache Wicket を紹介します。
Apache Wicketは、JavaによるLightweight Frameworkですが、
他のLightweight Language の Framework との決定的な違いは、
- 「Webアプリをいかに効率的に(= いかにプログラミング量を減らして)開発するか」
ではなく、
- 「WebアプリをいかにJava的に開発するか」
を目指している点です。
Wicketにおける「Java的に開発」というのは、
- 「Webアプリのロジックを排除した、コンポーネント指向のWebアプリ開発」
ということです。具体例を挙げれば、
- 「ページ遷移という考え方がなく、それを使用クラスの変更として実装している。」
- 「ページテンプレートHTMLは、専用の属性が追記されているだけで、純粋なHTMLとして扱える。」
といったところがあります。
それでは、Wicketを使ってWebアプリケーションを作成してみましょう。
まず、開発環境にMavenをインストールして下さい。
Wicketの開発環境構築は、Apache Wicketのダウンロードページ
からアーカイブをダウンロードして環境構築するのではなく、
Apache WicketのQuick Startページにあるように
Maven Archetypeを利用してWicketプロジェクトを作成しましょう。
その方が、断然スマートです。
Apache WicketのQuick Startページや、
Apace Wicketのページからリンクされているコミュニティのページ
で提供されているガジェットでMavenのコマンドを自動生成し、
それを実行します。
このとき、Mavenのコマンドラインに、-U オプションを付けておいた方が間違いないでしょう。

上記のMavenコマンドを実行した結果、
出来上がった Mavenプロジェクトを、
Eclipseにインポートして、
Maven でパッケージビルドすれば、
右のようにWARファイルができあがります。
Wicketのパッケージ単体だけでは、
環境構築に多くの手作業が発生しますが、
上記のような、コミュニティの提供する
サービスを使うことによって、
導入時の手間を簡略化することが
できるようになっています。
特に、前述のコミュニティのページ
が提供しているガジェットでは、
GuiceやHibernateと連携したプロジェクトを生成するMavenコマンドが自動生成できます。
Apache Wicket は、最近話題になりませんが、
2005年頃発足したプロジェクトなので、
比較的歴史があり、コミュニティによる資産の蓄積があるので、いろいろと試してみるとおもしろいと思います。
Apache Wicketを使えば、弊社のbiz-Streamを使ったWebアプリケーションも、
比較的手軽に作成することができると思います。
皆さんも、Apache Wicket いかがでしょうか。