SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Groovy+GrailsでRailsなWeb開発

GroovyとGoogle App Engineでアプリ開発(前編)
~GroovyでWeb開発を行うための基本

Groovy+GrailsでRailsなWeb開発 番外編 前編

Eclipseでプロジェクトを作成する

 では、準備が整ったところでEclipseを起動し、プロジェクトを作成しましょう。プラグインがインストールされていると、「Google」というフォルダに[Web Application Project]という項目が追加されます。これを選んでプロジェクトを作成してください。

Web Application Projectを作成
Web Application Projectを作成

 プロジェクト作成の設定画面では、プロジェクト名として「gae_app」とつけておきましょう。パッケージ名も同様に「gae_app」と指定してください。また「Google SDKs」という設定では、[Use Google Web Toolkit]をOFFに、[Use Google App Engine]をONに、それぞれ設定してください。このプラグインは、GAEだけでなく、GoogleのAjax開発フレームワーク「GWT」の開発も行えるようになっています。今回はGWTは使わず、GAEのみを利用しますので、このように設定しておきます。

プロジェクトの設定画面。GWTはOFFにしておくこと
プロジェクトの設定画面。GWTはOFFにしておくこと

 これで「gae_app」というプロジェクトが作成されました。しかし、これはあくまで「JavaによるGAEアプリケーション開発」のプロジェクトなので、Groovyは含まれていません。そこで、「war」フォルダ(これが実際にデプロイされるディレクトリとなります)内にある「WEB-INF」内の「lib」内に、Groovyのプログラムを入れておきましょう。

 Grailsがインストールされているフォルダ内の「lib」内に「groovy-all-1.6.x.jar」というJarファイルがあります。これはGroovyの本体および必要なライブラリ一式をまとめたもので、このファイルをプロジェクトのwar/WEB-INF/lib内にコピーすれば、Groovyが利用可能になります。

Groovyのビルドファイルの作成

 続いて、Groovyのプログラムをビルドするスクリプトファイルを作成します。このプロジェクトは、あくまで「JavaによるGAEアプリケーション」を作成するものなので、そのままEclipseでビルドしてもGroovyのスクリプトがビルドされるわけではありません。面倒ですが、別途用意しておきましょう。

 プロジェクト内に「build.groovy」というファイルを作成し、次のように記述してください。

def ant = new AntBuilder().sequential {
	taskdef name:"groovyc", classname:"org.codehaus.groovy.ant.Groovyc"
	groovyc srcdir:"src", destdir:"war/WEB-INF/classes",{
		classpath {
			fileset dir:"war/WEB-INF/lib",{ include name: "*.jar" }
			pathelement path:"war/WEB-INF/classes"
		}
		javac source: "1.5", target: "1.5", debug: "on"
	}
}

 これで、ビルドスクリプトができました。このスクリプトは、コマンドプロンプトから実行して利用します。コマンドプロンプトを起動し、このプロジェクトのフォルダにカレントディレクトリを移動して、

groovy build

 このように実行すると、GroovyのスクリプトファイルをJavaクラスファイルへとコンパイルし、所定の場所へと保存します。以後、プロジェクトを実行したりデプロイする際には、面倒ですが必ずこれでビルドを行うようにしてください。

サーブレットを作る

 では、Groovyのスクリプトを使ってサーブレットを作成してみましょう。「src」フォルダの中に「HelloServlet.groovy」ファイルを作成し、次のように記述をしましょう。

import javax.servlet.http.*

class HelloServlet extends HttpServlet {
	void doGet(HttpServletRequest request, HttpServletResponse response)
			throws IOException {
		response.contentType = "text/html"
		response.setCharacterEncoding("UTF-8")
		response.writer.println "<html>"
		response.writer.println "<head><title>Hello</title></head>"
		response.writer.println "<body><h3>Welcome to Groovy!</h3></body>"
		response.writer.println "</html>"
	}
}

 続いて、WEB-INF内にあるweb.xmlを開き、<web-app>タグ内に次のように追記してサーブレットを登録します。

<servlet>
	<servlet-name>HelloServlet</servlet-name>
	<servlet-class>HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>HelloServlet</servlet-name>
	<url-pattern>/hello</url-pattern>
</servlet-mapping>

 さあ、これでできあがりです。コマンドプロンプトを起動し、プロジェクトのディレクトリに移動してからプロジェクトのビルドを行い、GAE SDKに用意されている開発用サーバを使ってローカル環境でアプリケーションを実行してみましょう。

 Eclipseの[実行]メニューから[実行]のサブメニューにある[Webアプリケーション]を選んでください。これで、GAEに内蔵されているJettyサーバによりプロジェクトがデプロイされます。Webブラウザから「http://localhost:8080/hello」にアクセスしてください。作成したHelloServletが実行され、「Welcome to Groovy!」と表示されます。

この画面が表示されればGroovyによるサーブレットが動いている
この画面が表示されればGroovyによるサーブレットが動いている

 この開発用サーバでの公開は、Eclipseを使わず、コマンドプロンプトからでも行えます。コマンドプロンプトでカレントディレクトリをプロジェクトフォルダに移動し、次のように実行してください。

dev_appserver war/

 ただし、この後に登場するGroovletやGSPといった機能は、dev_appserverコマンドではうまく動いてくれません。これらはEclipseから起動する必要があります。特に理由がない限り「Eclipse上から開発用サーバで実行するのが基本」と考えた方がよいでしょう。

次のページ
Groovletを作成する

この記事は参考になりましたか?

Groovy+GrailsでRailsなWeb開発連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4192 2009/08/17 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー