2012年8月21日火曜日

[AppEngine] デプロイしてみる

環境ができたので、まずはなんか作ってデプロイするところまでやってみよう。

作成するプロジェクトは、Google > Web Application Project。
とりあえずは Google Web Toolkit は使わない予定なので「Use Google Web Toolkit」は外しておく。

なんかできた。

[Project-Folder]
  .settings/  com.google.appengine.eclipse.core.prefs
              com.google.gdt.eclipse.core.prefs
              org.eclipse.jdt.core.prefs
              org.eclipse.wst.common.project.facet.core.xml

  src/  META-INF/  jdoconfig.xml
                   persistence.xml

       [package]  XXXServlet.java

  war  favicon.ico
       idnex.html
       WEB-INF/   appengine-web.xml
                  logging.properties
                  web.xml
                  classes/   ...
                  lib/       ...

こんな構成になっている。
生成された Servlet。

package xawa99.test.HelloApp;

import java.io.IOException;
import javax.servlet.http.*;

@SuppressWarnings("serial")
public class HelloAppServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world");
    }
}

なんの変哲もないServletだった。


ローカルで実行する


とりあえず、Run As WebApplication。

...
8 08, 2012 11:21:24 午後 com.google.appengine.tools.development.DevAppServerImpl start
情報: The server is running at http://localhost:8888/
8 08, 2012 11:21:24 午後 com.google.appengine.tools.development.DevAppServerImpl start
情報: The admin console is running at http://localhost:8888/_ah/admin

動いた。ポートは8888を使っている。/_ah/admin にはローカルの管理ツールがロードされている。

localhost:8888 へアクセスすると index.html が表示されて Servlet へのリンクがあるので、 それをクリックすると Hello, world が表示される。
localhost:8888/_ah/admin/ へアクセスすると次のような管理画面が出てくる。


この画面についてはいずれ見てみるとして今はスルーしておく。


デプロイ


動いたので Google のサーバーに配置する。

まず、プロジェクトの設定。プロジェクトのコンテキストメニューで「Google > App Engine Settings」を選択して、「Application Id」にデプロイ先のアプリケーションのId(Google App Engine で create application をしたときに指定した値)を設定する。
必要があれば Version も指定する。デフォルトは1。

準備ができたので Deploy。「Google > Deploy to App Engine」を実行。
ログイン画面が出るのでログインすると以下の画面が出てきた。

Google Plugin for Eclipse が次の許可をリクエストしています:
  • Project Hosting でのユーザー プロフィールとプロジェクトの管理
  • メール アドレスの表示
  • Google SQL Service インスタンスのデータの管理
  • Google Apps Marketplace に表示されるアプリケーションの管理
  • Google App Engine に導入されたアプリケーションの表示と管理

とりあえず、「アクセスを許可」。デプロイするプロジェクトを入力する画面が出てくるのでそのまま「Deploy」。

------------ Deploying frontend ------------

Preparing to deploy:
 Created staging directory at: 'C:\Users\........'
 Scanning for jsp files.
 Scanning files on local disk.
 Initiating update.
 Cloning 2 static files.
 Cloning 20 application files.

Deploying:
 Uploading 4 files.
 Uploaded 1 files.
 Uploaded 2 files.
 Uploaded 3 files.
 Uploaded 4 files.
 Initializing precompilation...
 Sending batch containing 4 file(s) totaling 5KB.
 Deploying new version.

Verifying availability:
 Will check again in 1 seconds.
 Will check again in 2 seconds.
 Will check again in 4 seconds.
 Will check again in 8 seconds.
 Will check again in 16 seconds.
 Closing update: new version is ready to start serving.

Updating datastore:
 Uploading index definitions.

Deployment completed successfully

デプロイされた。
http://xawa99-test.appspot.com/ へアクセスするとローカルと同じように index.html が表示され、サーブレットのリンクをクリックすると「Hello, world.」が表示された。

管理コンソールでも instance が1つできていることが確認できた。
デプロイして動かすところまではOK。


0 件のコメント:

コメントを投稿