开始您的第一个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,如需转载请自行联系原作者


目录
相关文章
|
7天前
|
供应链 搜索推荐 API
1688APP原数据API接口的开发、应用与收益(一篇文章全明白)
1688作为全球知名的B2B电商平台,通过开放的原数据API接口,为开发者提供了丰富的数据资源,涵盖商品信息、交易数据、店铺信息、物流信息和用户信息等。本文将深入探讨1688 APP原数据API接口的开发、应用及其带来的商业收益,包括提升流量、优化库存管理、增强用户体验等方面。
44 6
|
1月前
|
开发框架 监控 .NET
【Azure App Service】部署在App Service上的.NET应用内存消耗不能超过2GB的情况分析
x64 dotnet runtime is not installed on the app service by default. Since we had the app service running in x64, it was proxying the request to a 32 bit dotnet process which was throwing an OutOfMemoryException with requests >100MB. It worked on the IaaS servers because we had the x64 runtime install
|
3月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
107 12
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
解密Google Cloud 全新 PaLM2及创新应用
这篇文章深入解析了Google Cloud推出的PaLM2大语言模型的特点及其在不同行业中的创新应用。
|
2月前
|
机器学习/深度学习 搜索推荐 数据挖掘
北邮移动互联网应用大作业实验报告《云账本app》开发
北邮移动互联网应用大作业实验报告《云账本app》开发
49 0
|
4月前
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
【Azure Logic App】在逻辑应用中开启或关闭一个工作流是否会对其它工作流产生影响呢?
|
4月前
|
存储 SQL JSON
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
【Azure Logic App】微软云逻辑应用连接到数据库,执行存储过程并转换执行结果为JSON数据
|
4月前
|
安全 前端开发 网络安全
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
149 0
|
4月前
|
存储 Linux 网络安全
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
|
4月前
|
开发框架 前端开发 JavaScript
【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法
【Azure App Service】.NET应用读取静态文件时遇见了404错误的解决方法

热门文章

最新文章