Javaでも気軽にWebサービス公開!!Java版Google App EngineとでもいうべきStAXで遊んでみる
はい、またまた遊んでみるシリーズです。
触るだけ触って深く掘り下げてないのは時間がないのと飽きっぽい性格だからですがまぁ気にしてません。
ってことで!!
「Stax Networks」というPaaS(サービスとしてのプラットフォーム)の話です。
PaaSとは、プラットフォーム一式をサービスとして提供するビジネスモデルのこと。
クラウドコンピューティングとしてプラットフォーム(サーバ環境やDatabaseなど)をネットワーク経由で利用者に提供するサービスをいいますが、要はAmazon S3やGoogle App Engineみたいなサービスのことです。
Java対応のGoogle App Engineとも言うべき「Stax Networks」ローンチ
PaaSとは (Platform as a Service) 用語解説 | Impress Innovation Lab.
Jungle Java - Stax Networks はJavaアプリ対応のPaaS
で、Google App Engineではpythonを開発言語としていますが、StAXではJavaが使えます!!
Javaが使えるレンサバも最近増えてますが、GAEでJavaが使えるとか考えるといろいろなところから汁があふれそうです。
LLにくらべてサービス提供におけるインフラ周りで敷居が高かったJavaですが、このようなサービスを利用することで、容易にちょろっと作ったWebサービスなんかを公開できるようになるかもです。
じゃじゃじゃじゃじゃじゃあ!!
StAXでこんにちわ世界するまでを、今回はご紹介しますよ、奥さん。
まずはアカウントを取得しましょう。
なにはなくともアカウント。
とらなきゃ何もできません。
今のところ無償なので、恐れずおびえずとってしまいましょう!!
StAXのトップページにいって、真ん中の灰色の「Apply for the Beta」ボタンをギャッと押しましょう。
気合いです。勢いが大事です。
Email入れて「Sign Up」しましょう。
しばらくするとメールが来ます。来るまでガマンです。ここはガマンです。
自分はメールが来るまで2日ほどかかりましたがとにかくガマンです。
届いたメールにはURLが書いてあるので、そこにアクセス!アクセスです。
ユーザ名とe-mail、パスワードを登録すれば、アカウントの作成は完了です。
これでアカウントがアクティベートされて、アプリケーションが作れるようになります。
やったね!!
SDKをインスコる
StAXには、コマンドラインでアプリケーションを作ったりデプロイしたりするSDKが提供されてますので、インストールしましょうね。
まずはStAXにログインします。すると、管理画面のトップにこれからどうすればいいか書いてあります。
SDKをインストールしる、とあるのでそのとおりにします。
「Stax SDK」のリンクをクリックしてzipを落として、適当なとこに解凍します。
解凍したディレクトリは、環境変数STAX_HOMEに設定して、PATHも通しておきます。
これでSDKのインストールは終わり!
じゃあアプリケーションを作ってみる
アプリケーションは、SDKのコマンドラインツールでも作成できますが、せっかくなのでWebからWizardを使って作成してみます。
StAXの管理画面にある「Stax Application Wizard 」リンクをクリックします。
こんな感じの画面が出てきますので、アプリケーション名を適当に入れます。
アプリケーションのテンプレートとしていろいろありますが、ここはWicketを選択します。
で「Create」ボタンを押すだけで、アプリケーションが作成されます。ブリリアント!!
作ったアプリケーションは、「Download」リンクから落とすこともできますが、ここはSDKのツールでダウンロードしてみます。
以下のコマンドで、ローカルPCに作成されたアプリケーションのソースファイル一式を取得することができます。
stax getapp -a [ユーザー名]/[アプリケーション名] -u [ユーザー名] -p [パスワード]
コマンドをうつと、ログがこんな感じで。
Downloading Stax SDK configuration from http://stax-downloads.s3.amazonaws.com/sdk/stax-sdk-config.xml . download completed Preparing to download application... Downloading..............................
できました!!
アプリのソースをいじってみる。
取得したファイルには、.classpathと.projectがあるので、そのままEclpseにインポートできます。
コンパイルエラーが出てますよ、オイ!!
.classpathに設定されてるwicketのバージョンとWEB-INF/libに入ってるバージョンが違うからですね。
プロジェクトを右クリックして[ビルドパス]→[ビルドパスの構成]で"ライブラリ"からWicket-1.3を除去して、Wicket-1.4-rc1.jarを追加すれば直ります。
とりあえず、HomePage.javaで"Hello World"メッセージを表示しているとこを日本語にしてみました。
ローカルで動かしてみる
StAXのSDKコマンドで、ダウンロードしたプロジェクトディレクトリに移動して
stax run
これでhttp://localhost:8080でアプリケーションが起動します。
いざ、デプロイ!
じゃあ、作った(というより改造した)アプリケーションをサーバにデプロイしてみます。
デプロイは、SDKのコマンドから行うことができますよー。
stax deploy -u [ユーザー名] -p [パスワード]
ログが流れて、アプリケーションのデプロイが終わります。
dist: [war] Building war: /Users/ozaki/dev/Project/sandbox/stax-test/testapp-wicket/dist/webapp.war [jar] Building jar: /Users/ozaki/dev/Project/sandbox/stax-test/testapp-wicket/dist/stax-deploy.zip [zip] Building zip: /Users/ozaki/dev/Project/sandbox/stax-test/testapp-wicket/dist/stax-src.zip uploading application to: www.stax.net application package size: 2MB 2008/12/22 12:37:53 com.staxnet.ant.Deployer deploy 情報: Deploying application: testapp-wicket (environment: deploy,prod) ........................uploaded 25% ........................uploaded 50% ........................uploaded 75% ........................upload completed deploying application to server(s)... 2008/12/22 12:38:21 org.apache.commons.httpclient.HttpMethodBase getResponseBody 警告: Going to buffer response body of large or unknown size. Using getResponseBodyAsStream instead is recommended. 2008/12/22 12:38:21 com.staxnet.ant.RemoteDeployer invokeDeploy 情報: Deploy complete, response=<?xml version="1.0" encoding="UTF-8"?> <updateApplicationResult> <id>yuroyoro/testapp-wicket</id> <url>http://testapp-wicket.yuroyoro.staxapps.net</url> </updateApplicationResult>
ログの最後に、アプリケーションが配備されているURLが出力されています。
ここにアクセスして、デプロイしたアプリケーションを確認しましょう。
おおおおおお!!ちゃんと動いてますね!!