2011年6月1日水曜日

EclipseでのGAE/Jアプリ開発はじめの一歩 ~WTPと併用する~

EclipseでのGAE/Jアプリの開発のための各種設定メモ書きです(ちょっとNetbeansユーザ的な視点が入ってます)。

どのパッケージを入れるべきか
NetbeansユーザがEclipseを使い始めるときに最初に悩むのは、Eclipseは様々ななパッケージスタイルが提供されているということ。Eclipseはプラグインでどんどんカスタマイズしていくのが利点なので、それはまあ文化の違いとして、実際GAE/J開発をしたいときは、
  • Eclipse IDE for Java EE Developers
  • Eclipse IDE for Java Developers
のどちらかを選ぶ。前者のほうがウェブ関係のプラグインが入っているのでやりやすいかもしれません。後者でもあとでプラグインの追加をすればOKです。

GPEのインストール
当然のこととして、Google Plugin for Eclipseはインストールする必要があります。それは、Eclipseのプラグインインストールのやり方に従い、【HELP】→【Install NewSoftware】を選んで、下記の公式サイト
に書いてある「Update sites」のURLを追加することでGPEの項目が出てくる。なおGWTに関係するプラグインも一緒になってるので同時にインストールしておこう。

Web Application Projectでプロジェクト作成
GAE/Jのアプリを作成するプロジェクトは、「Web Application Project」と呼ばれるもので、上記のGPEをインストールすることで作成できるようになります。Googleのアイコンがあるのでお間違いなく。これで、Jettyがサーバとして使えるようになります。また、デフォルトでGWTのプログラムが実装されます(ウィザードで取り消すことは可能)。

上記のEclipseでGAE/Jのアプリを作り始めたときに最初に違和感を感じるのが、サーブレットの作成方法について。サーブレットプログラムを動かすには、
  • HttpServletを継承したクラス
  • web.xmlによるサーブレットの登録
が必要なわけですが、デフォルトの状態だとこれを自動的にやってくれない。Netbeansなら自動作成してくれるのに、、、全部手書きでするとかちょっと面倒です。

WTPのインストール
Eclipseには、ウェブアプリの作成を支援するWTPというプラグインが用意されています。これを利用することで、ちょっとだけマシになります。まず、現在使っているEclipseのバージョンによって対処の方法が少し異なります。
【Eclipse IDE for Java EE Developersの場合】
すでにインストールされていますので、あとは有効化するだけです。
【Eclipse IDE for Java Developers】の場合
プラグインを追加して下さい。【HELP】→【Install NewSoftware】を選んで、Eclipseのサイトを選択すると
  • Web,XML and JavaEE Development
というカテゴリの中をすべて選んでインストールして下さい。

WTPの有効化
以上により、WTPが使える状態になりました。が、インストールするだけではだめ。GAE/Jアプリのためのプロジェクト「Web Application Project」をにおいて、WTPが有効になるようにしなければなりません。
有効化の方法は、【Project】→【Properties】→【Project Facets】を選びます。










そうすると最初は設定されてないという画面がでますので、それを押します。
すると以下の画面がでます。ここで、有効にしたいFacetを選ぶわけで、サーブレット作成に最低限必要なのは
  • Dynamic Web Module
なので、これを選びます。


Dynamic Web Moduleの設定上の注意点(20110602追記)
ここは重要です!!プロジェクトを作成する最初にやっておかないとダメですので、必ずこの設定をして下さい(あとから変更できません)。
(1)DynamicWebModuleのバージョン
WTPのバージョンはデフォルトではVersionが3.0になってます。GAE/Jでは、ServletAPIの2.4ないし2.5相当に準拠しているので、バージョンを下げないといけません。ここで実際下げてみると、2.5ではエラーがでますので、2.4にしましょう。
(2)コンテンツディレクトリ設定
WTPでは、コンテンツのルートディレクトリをWebContentというフォルダにしようとします。しかし、GPEでのコンテンツディレクトリは warフォルダです。よって、上記の「Dynamic Web Module」を選択した際に、下部に「Futher configuration」というリンクがあるので、これをクリックします。そこで、Content Directoryを「war」 に変更してください。



以上の設定により、サーブレットを作成するというウィザードが有効になります。これで、Servlet関連のファイルを自動生成できます。。この設定をしておかないと、web.xmlでのマッピング記述を自動化してくれませんので注意です。


以上、Nebeansユーザからすると、めんどうだなぁと思いつつ、これさえクリアすれば、スムーズに開発できる気がしてます。


0 件のコメント:

コメントを投稿