开始您的第一个Google App Engine应用-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

开始您的第一个Google App Engine应用

简介:

很多人想玩 Google App Engine ,最起码可以当个免费的虚拟主机来用。那就先说说费用情况。

目前,GAE 每个帐号可以开通10个应用,每个应用免费配额1G磁盘空间,这样下来就是10G。另外,每个应用每天免费流量配额10G,Request 一百三十万次,数据库存储调用一千万次。

超出这些配额您可以购买,存储空间0.01美元2G(这个不按天算),带宽基本上0.1美元10G左右/每天(这个每天统计一次,超出免费配额部分才收费)。

唯一遗憾的是暂时不受理人民币。

GAE最早支持 Python ,前一阵又开通了 Java 支持,并提供了一套 SDK。但是由于 GAE 是新生事物,不是很成熟,部署起来挺麻烦,如果没有一个好的 IDE 支持,玩起来很困难。目前官方提供了 Eclipse 插件,您可以使用。由于个人爱好 Netbeans ,本文以 Netbeans 为主要 IDE,如果您是 Eclipse 用户,原理上也是相同的。下面我们开始吧。 

版权声明:本博客文章如非特别注明,均为原创,作者保留所有权利!欢迎转载,转载请注明作者左洸和出处博客园

0、本文假设你的 JDK 、Netbeans 已经正确安装并配置好相关环境变量。
备注:本文最后提供了项目模板,您可以跳过中间部分,直接使用。

1、首先先你得有个 Google 帐号,如果您使用 Python ,直接就可以部署了。如果您使用 Java,需要到这里激活 App Engine Java 帐户,点击 sign up ,发出请求。可能要等几天才能收到激活邮件。如图:



2、到这里下载 App Engine Java SDK ,我然后将它解压到 E:\appenginesdk,后面的配置将以这个路径为参照,您可以更改为自己的路径。如图:


3、在 Netbeans 中新建一个 Java Web 项目,取名 Hello ,我将它保存在 E:\gae\java 目录下,如图:


4、到 App Engine Java SDK E:\appenginesdk\demo\guest\war\WEB-INF 文件夹中复制 appengine-web.xml logging.properties   两个文件,然后在 Netbeans 中将这两个文件粘帖到 Web\WEB-INF 目录下,这一步很重要。如图:

版权声明:本博客文章如非特别注明,均为原创,作者保留所有权利!欢迎转载,转载请注明作者左洸和出处博客园

5、同样到 App Engine Java SDK E:\appenginesdk\demos\guestbook\war\WEB-INF\classes 下复制 META-INF 文件夹   ,然后粘帖到 Netbeans 中的 “源包” 文件夹下,这一步很重要。如图:

6、将 E:\appenginesdk\lib\impl\appengine-api.jar 文件添加到项目的“库”中,目前我们只需要着一个包,以后如果加入数据库可能还需要别的包。这一步很重要。如图:


7、由于 Java Web 项目创建的时候自动生成了一个 index.jsp 文件,所以这时候我们可以在本机测试运行一下:
0)  在 Netbeans 中对项目 “清理并生成”
1)在桌面上建立一个 run.bat 文件,编辑内容为:E:\appenginesdk\bin\dev_appserver.cmd    E:\gae\java\Hello\build\web,您可能要根据你自己的情况更改路径。
2)  保存 run.bat ,然后双击运行出现如下窗口,服务器开始运行:

    
3)打开浏览器 http://localhost:8080/ ,出现下图,说明一切正常:




8、在 Netbeans 中创建 HelloServlet ,并将 URL 模式改为 /hello,Servlet 代码如下:

response.setContentType("text/html;charset=UTF-8");
        PrintWriter out 
= response.getWriter();
        
try {
            out.println(
"<html>");
            out.println(
"<head>");
            out.println(
"<title>Servlet HelloServlet</title>");  
            out.println(
"</head>");
            out.println(
"<body>");
            out.println(
"<h1>你好,Google App Engine</h1>");
            out.println(
"</body>");
            out.println(
"</html>");
        }
 finally 
            out.close();
        }


关闭 run.bat 命令行窗口,在 Netbeans 中对项目 “清理并生成”,重新运行 run.bat,然后在浏览器中输入 http://localhost:8080/hello ,可以看见输出。

如何加入静态文件?

9、Netbeans 中在项目的 “Web 页” 文件夹下建立一个 images 文件夹,并将 1.jpg 文件复制到里面,如图:


10、更改 index.jsp 内容如下:

<body>
        
<href="/hello">运行 Hello Servlet</a>
        
<p/>
        
<img src="images/1.jpg">
</body>



11、打开项目下的 Web 页->WEB-INF->appengine-web.xml 文件,填写内容如下:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    
<application>myqiao-app</application>
    
<version>1</version>

    
<static-files>
        
<include path="/**.jpg" />
    
</static-files>

    
<system-properties>
        
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    
</system-properties>
</appengine-web-app>


12、关闭 run.bat 命令行窗口,在 Netbeans 中对项目 “清理并生成”,重新运行 run.bat,然后在浏览器中输入 http://localhost:8080/,可以看见一个 Servlet 的超链接,另外还显示了一幅图片

这里需要注意的两个地方:
1)myqiao-app 是我的 GAE 帐号,这里您需要改成您的;
2) <include path="/**.jpg" /> 这一句,告诉所有的 jpg 文件都是静态文件,都可以访问
3)关闭 run.bat 命令行窗口,在 Netbeans 中对项目 “清理并生成”,如果一切正常就可以上传了


13、建立一个 upload.bat 文件,内容如下:E:\appenginesdk\bin\appcfg.cmd update    E:\gae\java\Hello\build\web,您可能要根据你自己的情况更改路径。
运行它,第一次运行的时候,您需要根据提示输入您的 gmail 帐号和密码,您就可以看见上传进度了:如图:

版权声明:本博客文章如非特别注明,均为原创,作者保留所有权利!欢迎转载,转载请注明作者左洸和出处博客园

14、浏览我的网址:
欢迎大家来我的新家疯狂留言,进行残酷的压力测试,看看能不能把它刷爆,呵呵。
我的GAE主页是:http://myqiao-app.appspot.com/exercise/
什么?出现了乱码?这是目前 GAE SDK 的小问题,有两个办法:

1、把 index.jsp 动态文件改成 index.html 静态文件 

2、到 linux 下开发

15、项目模板

下载模板

这里提供了一个Netbeans项目模板,您可以免去上面的复杂过程,直接使用。

需要自定义的地方:
1、下载模板,用Netbeans打开,重构项目名称。

2、使用JDO,请阅读相关文档。

3、持久化类不能放到默认包中。模板提供了一个测试用的 POJO.java 类中,并放到 my.jdo 包中,您可以根据您自己的情况更改

4、将 appengine-web.xml 的项目名称改成您自己的


怎么样,很简单吧!动手试试吧

 


本文转自左洸博客园博客,原文链接:http://www.cnblogs.com/myqiao/archive/2009/05/12/1454867.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: