Webアプリケーションを実行する
では、作成したWebアプリケーションを実行してみましょう。本来は、サーバで公開して利用することになるのですが、Grailsにはサーブレットコンテナ「Jetty」が内蔵されており、その場でサーバを起動して公開することができます。
コマンドプロンプトで、Webアプリケーションのディレクトリ(ここでは「gapp」フォルダ内)にカレントディレクトリを移動してください。そして、次のようにコマンドを実行します。
grails run-app
これでGrails内臓のJettyが起動し、このディレクトリにあるWebアプリケーションを公開します。起動したら、Webブラウザから次のようにアクセスをしてみてください。
http://localhost:8080/gapp/
「Welcome to Grails」と表示されたページが現れます。これが、Grailsで作成したgappアプリケーションのルート画面です。まだ何も具体的なページを作成していないので、このデフォルトページしか表示されませんが、とりあえず「Webアプリケーションを作成して動かす」やり方はこれで分かりました。
なお、サーバーを停止する場合には、Ctrlキー+Cでスクリプトを中断してください。この場合、「バッチ ジョブを終了しますか (Y/N)?」とたずねてくるので、「y」を入力すればサーバーを停止し、入力画面に戻ります。
本サーバへの公開手順
では、作ったWebアプリケーションを実際のJavaサーバ(サーブレットコンテナ)にデプロイするにはどうすればよいのでしょうか。これは通常、WARファイル(Web Archiveファイル)を使用します。Grailsには、WebアプリケーションをWARファイルとして出力する機能が用意されているのです。Webアプリケーションのフォルダにディレクトリを移動し、
grails war
このように実行してください。Webアプリケーションディレクトリ内に「gapp-0.1.war」というファイルが作成されます。これが、WebアプリケーションをWARファイルとしてまとめたものです。後は、これを実際に利用するサーブレットコンテナで公開すれば良いのです。
WARファイルとしてデプロイすることから分かるように、GrailsのWebアプリケーションは、一般的なサーブレットコンテナで動きます。Java EEサーバは不要です。ただし、WARファイルの段階で20MB以上ありますから、Grailsアプの実行には非常に多くのメモリが必要となります。このため、使用するサーブレットコンテナへのメモリ割り当てが少ないと実行できないので注意してください。例えばTomcatの場合、512MBの割り当てが必要です。Jettyはデフォルトのままで起動できますが、もし動かない場合には-Xmxオプションを指定してください。