
Google App Engine for Java 開発環境を USB メモリで持ち歩く (3)2009-04-19
Google App Engine の Java 開発環境を USB メモリに入れてどこでも開発できる環境を作りました。
レポート第 3 弾。GAE プロジェクトを作成し、最初の Hello world! が表示できるようになるまで。
自動的にドライブレターの設定を書き換えられるのがベストなのですが、この設定はどうやら Plugin の設定ファイルに、XML がシリアライズされて保存されているため、安全な書き換えは事実上不可能です。
仕方がないので、下記の手順で複数の SDK を登録しておき、ドライブレターの異なる環境によってそれぞれ使い分けるようにします。
また、Web Toolkit も使用する場合は、同様の手順で SDK を追加する必要があります。
JRE 自体は、Eclipse 起動時にオプションで指定したものを共有できるのでいいんですが、この Google App Engine の SDK だけはスマートに解決できていないです。
良い解決方法を知っている方がいたら是非教えて下さい。
ではまず、ツールバーの
ボタンをクリックして、ウィザードを起動します。
なんとこれだけで、Servlet クラスや web.xml はもちろん、その他に最低限必要なファイル一式が全てそろった状態でプロジェクトが作成されます。
Hello World を作成するのに、特別な何かをする必要はありません。
これでエラーが発生せず、コンソールに「The server is running at http://localhost:8080/」と表示されれば OK です。
なんて楽なんでしょう。全てのお膳立ては、あらかじめ Google Plugin が済ませておいてくれています。
これで問題がなければ、デバッガも正常に動作しています。
ここまでで一応、開発環境の構築は完了です。後は普通の Java やサーブレットの作法に則って、好きなライブラリを追加するなり、好きなフレームワークを導入するなり、開発を進める事が出来ます。
なお、前述の通り、ドライブレターが異なる環境で動作させようとすると、Google App Engine SDK のパスが切れてエラーになってしまいます。
その場合は、Google App Engine SDK を再設定するだけで問題なく動作させられるので、あわてる必要はありません。
ただ、毎回設定し直すのは面倒ですので、もし開発を行う環境で管理者権限があるようだったら、あらかじめ USB メモリのドライブレターを固定させておくのが楽です。
この設定を 1 回やっておけば、次から同じ USB メモリを指した時はそのドライブに固定されてマウントされるはずです。
様々な環境で他のドライブとかぶらない文字を選んでおくと良いでしょう。
今後、Google App Engine サーバへのデプロイとか、Google App Engine SDK による、Google アカウントの利用とか、DB の利用とかそんなところも、上手く動かせたらレポートしたいと思います。
それと、Java とは直接関係ないのですが、開発環境を USB に入れたついでに、Firefox も USB に入れるといいなぁとか思いました。
他にも、(個人的な) 需要がありそうだったら、PHP 開発環境を USB に入れるとか、MySQL を USB に入れるとかそんなのにも挑戦してみたいですね。PHP なんかの場合は、Apache も入れないといけないので難易度が上がりそうです。
レポート第 3 弾。GAE プロジェクトを作成し、最初の Hello world! が表示できるようになるまで。
Google App Engine SDK の設定
最初に Google Plugin をインストールした時と異なるドライブレターで USB メモリを使用している場合、Google App Engine SDK のパスがリンク切れを起こしてしまっています。自動的にドライブレターの設定を書き換えられるのがベストなのですが、この設定はどうやら Plugin の設定ファイルに、XML がシリアライズされて保存されているため、安全な書き換えは事実上不可能です。
仕方がないので、下記の手順で複数の SDK を登録しておき、ドライブレターの異なる環境によってそれぞれ使い分けるようにします。
ウィンドウ → 設定 → Google → App Engine → 追加ボタン → 参照ボタン → U:\eclipse\plugins\com.google.appengine.eclipse.sdkbundle_1.2.0.*\appengine-java-sdk-1.2.0 → 表示名 : 任意 (自宅デスクトップ等) → OK ボタン
また、Web Toolkit も使用する場合は、同様の手順で SDK を追加する必要があります。
JRE 自体は、Eclipse 起動時にオプションで指定したものを共有できるのでいいんですが、この Google App Engine の SDK だけはスマートに解決できていないです。
良い解決方法を知っている方がいたら是非教えて下さい。
プロジェクトの新規作成
続いて Hello World を作ります。最初に作るのは Hello World と相場が決まっているのです。オールドタイプですいません。ではまず、ツールバーの

プロジェクト名 : HelloWorld → パッケージ : helloworld → Use Google Web Toolkit のチェックを外す → Use Google App Engine の Configure SDKs を選択 → 有効な SDK が選択されている事を確認 → OK ボタン → 完了ボタン → ちょっと待つ → 最低限必要なファイルが展開される
なんとこれだけで、Servlet クラスや web.xml はもちろん、その他に最低限必要なファイル一式が全てそろった状態でプロジェクトが作成されます。
Hello World を作成するのに、特別な何かをする必要はありません。
サーブレットコンテナの起動とデバッグ
さあ、いよいよサーブレットとして動作させる時が来ました。また、開発環境を名乗るからには当然、デバッガが正しく動作している事も確認する必要がありますね。実行 → デバッグの構成 → Web アプリケーション → HelloWorld → デバッグボタン → 初回起動時は Windows ファイアウォールの警告 → ブロックを解除する
これでエラーが発生せず、コンソールに「The server is running at http://localhost:8080/」と表示されれば OK です。
なんて楽なんでしょう。全てのお膳立ては、あらかじめ Google Plugin が済ませておいてくれています。
src/helloworld/HelloWorldServlet.java を開く → 適当にブレークポイントを設定する → ブラウザで、http://localhost:8080/ を開く → HelloWorldServlet リンクを選択 → ブレークポイントでプログラムの実行が一時停止する事を確認
これで問題がなければ、デバッガも正常に動作しています。
ここまでで一応、開発環境の構築は完了です。後は普通の Java やサーブレットの作法に則って、好きなライブラリを追加するなり、好きなフレームワークを導入するなり、開発を進める事が出来ます。
なお、前述の通り、ドライブレターが異なる環境で動作させようとすると、Google App Engine SDK のパスが切れてエラーになってしまいます。
その場合は、Google App Engine SDK を再設定するだけで問題なく動作させられるので、あわてる必要はありません。
ただ、毎回設定し直すのは面倒ですので、もし開発を行う環境で管理者権限があるようだったら、あらかじめ USB メモリのドライブレターを固定させておくのが楽です。
Win +R → diskmgmt.msc → Enter → 対象のドライブを右クリック → ドライブ文字とパスの変更
この設定を 1 回やっておけば、次から同じ USB メモリを指した時はそのドライブに固定されてマウントされるはずです。
様々な環境で他のドライブとかぶらない文字を選んでおくと良いでしょう。
今後の話
3 回に分けて掲載してきた、Google App Engine for java 開発環境の構築はいったんこれで終了です。まあ、正直なところあまり面白くない内容ですよね。今後、Google App Engine サーバへのデプロイとか、Google App Engine SDK による、Google アカウントの利用とか、DB の利用とかそんなところも、上手く動かせたらレポートしたいと思います。
それと、Java とは直接関係ないのですが、開発環境を USB に入れたついでに、Firefox も USB に入れるといいなぁとか思いました。
他にも、(個人的な) 需要がありそうだったら、PHP 開発環境を USB に入れるとか、MySQL を USB に入れるとかそんなのにも挑戦してみたいですね。PHP なんかの場合は、Apache も入れないといけないので難易度が上がりそうです。
カテゴリ: Development タグ: java gae eclipse usb