Wicket on dotCloud
なんかWicket ( http://wicket.apache.org/ ) がお手軽ウェブフレームワークらしいので触ってみることにしました。ついでにdotCloudとかいう最近有名なアレの上に乗っけてみることにしました。
ステップ0. dotCloudデプロイ準備
http://docs.dotcloud.com/firststeps/install/ 参考に適当に
$ pip install dotcloud $ dotcloud setup
ステップ1. Wicketのプロジェクトの作成
プロジェクトはmavenで作成します。しかしmavenのプロジェクト作成コマンドはいつもいつもめんどくさくて覚えてられないですね。Wicketさんはその辺のフォローもしっかりしています。Create a Wicket Quickstart | Apache Wicketで作りたいプロジェクトのグループIDとアーティファクトIDを入力すれば実行すべきコマンドが出てきます。
$ mvn archetype:generate -DarchetypeGroupId=org.apache.wicket -DarchetypeArtifactId=wicket-archetype-quickstart -DarchetypeVersion=1.5.3 -DgroupId=org.hogel -DartifactId=wicket-test -DarchetypeRepository=https://repository.apache.org/ -DinteractiveMode=false [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Maven Stub Project (No POM) 1 [INFO] ------------------------------------------------------------------------ [INFO] [INFO] >>> maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom <<< [INFO] [INFO] --- maven-archetype-plugin:2.0:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Batch mode [INFO] Archetype defined by properties [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.547s [INFO] Finished at: Sat Jan 07 22:58:38 JST 2012 [INFO] Final Memory: 7M/133M [INFO] ------------------------------------------------------------------------
簡単にできました。
$ cd wicket-test $ mvn jetty:run [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building quickstart 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ いろいろたくさん... INFO - WebApplication - [wicket.wicket-test] Started Wicket version 1.5.3 in DEVELOPMENT mode ******************************************************************** *** WARNING: Wicket is running in DEVELOPMENT mode. *** *** ^^^^^^^^^^^ *** *** Do NOT deploy to your live server(s) without changing this. *** *** See Application#getConfigurationType() for more information. *** ******************************************************************** 2012-01-07 22:59:56.017:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080 STARTING 2012-01-07 22:59:56.376:INFO:oejs.AbstractConnector:Started SslSocketConnector@0.0.0.0:8443 STARTING [INFO] Started Jetty Server
起動しました。アクセスしてみましょう→ http://localhost:8080/
コマンド叩いただけなのになんかできてて最近のウェブフレームワークっぽいですね。中身はあとで触っていきましょう。
ステップ2. DEPLOYMENTモードにする
mvn jetty:runしたときにこんな表示をしていましたね。
INFO - WebApplication - [wicket.wicket-test] Started Wicket version 1.5.3 in DEVELOPMENT mode ******************************************************************** *** WARNING: Wicket is running in DEVELOPMENT mode. *** *** ^^^^^^^^^^^ *** *** Do NOT deploy to your live server(s) without changing this. *** *** See Application#getConfigurationType() for more information. *** ********************************************************************
上記メッセージの通り、WicketApplication.javaにWicketApplication#getConfigurationType()を追加します。
package org.hogel; import org.apache.wicket.RuntimeConfigurationType; import org.apache.wicket.protocol.http.WebApplication; /** * Application object for your web application. If you want to run this application without deploying, run the Start class. * * @see org.hogel.Start#main(String[]) */ public class WicketApplication extends WebApplication { /** * @see org.apache.wicket.Application#getHomePage() */ @Override public Class<HomePage> getHomePage() { return HomePage.class; } /** * @see org.apache.wicket.Application#init() */ @Override public void init() { super.init(); // add your configuration here } @Override public RuntimeConfigurationType getConfigurationType() { return RuntimeConfigurationType.DEPLOYMENT; } }
ステップ3. パッケージング
mavenでWicketプロジェクトをwarファイルにパッケージング。
$ mvn package [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building quickstart 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] 色々...
ステップ4. デプロイ
http://docs.dotcloud.com/services/java/を参考に先のwarファイルをデプロイしてみる。
dotCloud上にwickettestというアプリケーションを作成する。
$ dotcloud create wickettest Created application "wickettest"
dotcloudディレクトリを作ってdotcloud用のファイルをまとめる。
$ mkdir dotcloud $ cp target/wicket-test-1.0-SNAPSHOT.war dotcloud/ROOT.war
dotcloud/dotcloud.ymlに以下の内容を記述
www: type: java
デプロイ。
$ dotcloud push wickettest dotcloud
http://wickettest-hogelog.dotcloud.com/
デプロイ完了。うーん便利な時代ですねー。