为Google app engine开发JAVA Hello Word
After hearing the buzz about java support in Google App Engine I decided to write a hello, world application and run it on Google App Engine.
在听说GAP 支持java以后,我决定写一个在gap 上运行的java hello world程序。我使用的开发工具是eclipse 3.4,google推出了gap的Eclipse插件,以方便开发者。
添加Eclipse的Google app engine plugin
第一步: 打开eclipse,选择 帮助>软件更新>添加站点。站点的url 是:
1. http://dl.google.com/eclipse/plugin/3.4

勾选sdk,plugin,toolkit 可选,点击安装,重启Eclipse等更新完成。
创建工程
创建一个新的web application ,点击file >New >project,在对话框中选择google下面的google web application。

指定web应用的名称和包的名称。为了保持应用的简单,不要勾选‘use GWT’ and check ‘,勾选‘Use app engine’,之后点击完成。

这样就生产了应用文件,工程结构如下:

本地运行web应用
Right click on your application and click on Run as… > Web Application.
右键点击helloword工程,选择Run as… > Web Application.

Eclipse将启动web app服务器在端口8080,你可以通过这个url访问应用:
1. http://localhost:8080/helloworld
Create a Google App Engine account
创建gap 帐号
Before you can deploy you hello world application to google app engine, you need to create an account on google app engine.
在你把web应用部署在gap以前,你必须创建一个gap帐号。可以登录http://appengine.google.com/按照步骤创建app帐号。
首先通过已有的google帐号登录,当你第一次创建app帐号的时间必须通过短消息验证。我们选择 其他国家和地区,手机号码输入:+086 13888886666 (13888886666是你的手机号码,可以接受短信),之后在下一步的验证中输入你的手机收到的验证码。

选择一个唯一的application ID
Application id, 就像登录名字一样必须是唯一的。在操作之前你必须选择一个唯一的id。在你选择application id后,http://<你的 application id>.appspot.com 就是你的应用的地址。

配置eclipse application的application id
右键点击 helloworld工程,google >app engine settings。
输入你的application id。也可修改appengine-web.xml中的application标签。
<application>wjjapp</application>

部署你的app到Google app engine
右击 你的应用> Google > Deploy to app engine.输入google帐号名,和密码,点击部署即可。

完成上面的步骤后,你的web应用就部署到了Google app engine.如果部署失败,收到这样的消息:
java.io.IOException: Error posting to URL: http://appengine.google.com/api/appversion/...
1. 400 Bad Request
2. Invalid runtime specified.
3.
4. Unable to upload app: Error posting to URL: http://appengine.google.com/api/appversion/...
5. 400 Bad Request
6. Invalid runtime specified.
这是由于你没有访问java version的权限,你可以点击 here申请。
申请成功的话,你将会收到google的mail通知,这个过程一般需要1到2天的时间。Email如下:

再次尝试部署web应用,这次将会成功,你将看到下面的控制台输出:
1. Creating staging directory
2. Scanning for jsp files.
3. Scanning files on local disk.
4. Initiating update.
5. Cloning 1 static files.
6. Cloning 13 application files.
7. Uploading 5 files.
8. Uploaded 1 files.
9. Uploaded 2 files.
10. Uploaded 3 files.
11. Uploaded 4 files.
12. Uploaded 5 files.
13. Deploying new version.
14. Will check again in 1 seconds
15. Closing update: new version is ready to start serving.
16. Uploading index definitions.
17. Deployment completed successfully
在线访问你的应用
登录 google app engine,你将看到你的application页面。
你将看到你的版本号为1的web应用,点击链接,打开应用。链接如下的格式:http://<applicationid>.appspot.com, 例http://wjjapp.appspot.com/.