很多人想玩 Google App Engine Java,最起码可以当个免费的虚拟主机来用,前一阵有开通了 Java 支持,但是由于 GAE 是新生事物,不是很成熟,部署起来很复杂,如果没有一个好的 IDE 支持,玩起来很困难,目前只有 Eclipse 插件,其实用 Netbeans 一样也能开发,一点也不复杂。下面我们开始。
0、本文假设你的 JDK 、Netbeans 已经正确安装配置。
1、首先先你得有个 Google 帐号,然后到<a href=”http://code.google.com/intl/en/appengine/” target=”_blank”><b><u>这里</u></b></a>激活 App Engine Java 帐户,点击 sign up ,发出请求,你可能要等几天才能收到激活邮件。如图:
<img src=”http://www.blogjava.net/images/blogjava_net/myqiao/gae_1.jpg”>
2、到<a href=”http://googleappengine.googlecode.com/files/appengine-java-sdk-1.2.0.zip” target=”_blank”><b><u>这里</u></b></a>下载 App Engine Java SDK ,然后将它解压到 <span style=”font-family: Helvetica;”><b>E:appenginesdk</b></span>,后面的配置将以这个路径为参照,您可以更改为自己的路径。如图:
[img=472,355]http://www.blogjava.net/images/blogjava_net/myqiao/gae_2.jpg[/img]
3、在 Netbeans 中新建一个 Java Web 项目,取名 Hello ,我将它保存在 E:gaejava 目录下,如图:
<img src=”http://www.blogjava.net/images/blogjava_net/myqiao/gae_3.jpg”>
4、到 App Engine Java SDK 的 <span style=”font-family: Helvetica;”>E:appenginesdk</span>demoguest<span style=”font-family: Helvetica;”>warWEB-INF 文件夹中复制 [font=Helvetica]<span style=”color:#ff0000″>[font=Helvetica]<b>appengine-web.xml </b></span></span>、<span style=”font-family: Helvetica;”><span style=”color:#ff0000″>[font=Helvetica]<b>logging.properties</b></span></span> 两个文件,然后在 Netbeans 中将这两个文件粘帖到 WebWEB-INF 目录下,这一步很重要。如图:
<img src=”http://www.blogjava.net/images/blogjava_net/myqiao/gae_4.jpg”>
5、同样到 App Engine Java SDK 的 <span style=”font-family: Helvetica;”>E:appenginesdk</span>demosguestbookwarWEB-INFclasses 下复制 <span style=”color:#ff0000″><b>META-INF 文件夹</b></span> ,然后粘帖到 Netbeans 中的 “源包” 文件夹下,这一步很重要。如图:
<img src=”http://www.blogjava.net/images/blogjava_net/myqiao/gae_5.jpg”>
6、将 <span style=”font-family: Helvetica;”>E:appenginesdk</span>libimpl<span style=”color:#ff0000″><b>appengine-api.jar</b></span> 文件添加到项目的“库”中,目前我们只需要着一个包,以后如果加入数据库可能还需要别的包。这一步很重要。如图:
<img src=”http://www.blogjava.net/images/blogjava_net/myqiao/gae_6.jpg”>
7、由于 Java Web 项目创建的时候自动生成了一个 index.jsp 文件,所以这时候我们可以测试运行一下:
0) 在 Netbeans 中对项目 “清理并生成”
1)在桌面上建立一个 run.bat 文件,编辑内容为:E:appenginesdkindev_appserver.cmd E:gaejavaHellouildweb,您可能要根据你自己的情况更改路径。
2) 保存 run.bat ,然后双击运行出现如下窗口,服务器开始运行:
<img src=”http://www.blogjava.net/images/blogjava_net/myqiao/gae_7.jpg”>
3)打开浏览器 <a href=”http://localhost:8080/” target=”_blank”><span style=”color:#4371a6″>http://localhost:8080/</span></a> ,出现下图,说明一切正常:
<img src=”http://www.blogjava.net/images/blogjava_net/myqiao/gae_8.jpg”>
8、在 Netbeans 中创建 HelloServlet ,并将 URL 模式改为 /hello,Servlet 代码如下:
<span style=”font-size: 13px;”><img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”><span style=”color:#000000″>response.setContentType(</span><span style=”color:#000000″>”</span><span style=”color:#000000″>text/html;charset=UTF-8</span><span style=”color:#000000″>”</span><span style=”color:#000000″>);
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> PrintWriter out </span><span style=”color:#000000″>=</span><span style=”color:#000000″> response.getWriter();
<img src=”http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif”><img src=”http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif”> </span><span style=”color:#0000ff”>try</span>
<img src=”http://www.blogjava.net/Images/dot.gif”><span style=”color:#000000″>{
<img src=”http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif”> out.println(</span><span style=”color:#000000″>”</span><span style=”color:#000000″><html></span><span style=”color:#000000″>”</span><span style=”color:#000000″>);
<img src=”http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif”> out.println(</span><span style=”color:#000000″>”</span><span style=”color:#000000″><head></span><span style=”color:#000000″>”</span><span style=”color:#000000″>);
<img src=”http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif”> out.println(</span><span style=”color:#000000″>”</span><span style=”color:#000000″><title>Servlet HelloServlet</title></span><span style=”color:#000000″>”</span><span style=”color:#000000″>);
<img src=”http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif”> out.println(</span><span style=”color:#000000″>”</span><span style=”color:#000000″></head></span><span style=”color:#000000″>”</span><span style=”color:#000000″>);
<img src=”http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif”> out.println(</span><span style=”color:#000000″>”</span><span style=”color:#000000″><body></span><span style=”color:#000000″>”</span><span style=”color:#000000″>);
<img src=”http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif”> out.println(</span><span style=”color:#000000″>”</span><span style=”color:#000000″><h1>你好,Google App Engine</h1></span><span style=”color:#000000″>”</span><span style=”color:#000000″>);
<img src=”http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif”> out.println(</span><span style=”color:#000000″>”</span><span style=”color:#000000″></body></span><span style=”color:#000000″>”</span><span style=”color:#000000″>);
<img src=”http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif”> out.println(</span><span style=”color:#000000″>”</span><span style=”color:#000000″></html></span><span style=”color:#000000″>”</span><span style=”color:#000000″>);
<img src=”http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif”><img src=”http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif”> }</span>
<span style=”color:#0000ff”>finally</span>
<img src=”http://www.blogjava.net/Images/dot.gif”><span style=”color:#000000″>{
<img src=”http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif”> out.close();
<img src=”http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif”> }</span></span>
关闭 run.bat 命令行窗口,在 Netbeans 中对项目 “清理并生成”,重新运行 run.bat,然后在浏览器中输入 <a href=”http://localhost:8080/hello” target=”_blank”><span style=”color:#4371a6″>http://localhost:8080/hello</span></a> ,可以看见输出。
9、Netbeans 中在项目的 “Web 页” 文件夹下建立一个 images 文件夹,并将 1.jpg 文件复制到里面,如图:
[img=191,235]http://www.blogjava.net/images/blogjava_net/myqiao/gae_9.jpg[/img]
10、更改 index.jsp 内容如下:
<span style=”font-size: 13px;”><img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”><span style=”color:#0000ff”><</span><span style=”color:#800000″>body</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”><</span><span style=”color:#800000″>a </span><span style=”color:#ff0000″>href</span><span style=”color:#0000ff”>=”/hello”</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>运行 Hello Servlet</span><span style=”color:#0000ff”></</span><span style=”color:#800000″>a</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”><</span><span style=”color:#800000″>p</span><span style=”color:#0000ff”>/></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”><</span><span style=”color:#800000″>img </span><span style=”color:#ff0000″>src</span><span style=”color:#0000ff”>=”images/1.jpg”</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”></span><span style=”color:#0000ff”></</span><span style=”color:#800000″>body</span><span style=”color:#0000ff”>></span></span>
11、关闭 run.bat 命令行窗口,在 Netbeans 中对项目 “清理并生成”,重新运行 run.bat,然后在浏览器中输入 <a href=”http://localhost:8080/” target=”_blank”><span style=”color:#4371a6″>http://localhost:8080/</span></a>,可以看见一个 Servlet 的超链接,另外还显示了一幅图片
12、打开项目下的 Web 页->WEB-INF->appengine-web.xml 文件,填写内容如下:
<span style=”font-size: 13px;”><img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”><span style=”color:#0000ff”><?</span><span style=”color:#ff00ff”>xml version=”1.0″ encoding=”utf-8″</span><span style=”color:#0000ff”>?></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”></span><span style=”color:#0000ff”><</span><span style=”color:#800000″>appengine-web-app </span><span style=”color:#ff0000″>xmlns</span><span style=”color:#0000ff”>=”http://appengine.google.com/ns/1.0″</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”><</span><span style=”color:#800000″>application</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>myqiao-app</span><span style=”color:#0000ff”></</span><span style=”color:#800000″>application</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”><</span><span style=”color:#800000″>version</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>1</span><span style=”color:#0000ff”></</span><span style=”color:#800000″>version</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”><</span><span style=”color:#800000″>static-files</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”><</span><span style=”color:#800000″>include </span><span style=”color:#ff0000″>path</span><span style=”color:#0000ff”>=”/**.jpg”</span>
<span style=”color:#0000ff”>/></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”></</span><span style=”color:#800000″>static-files</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”><</span><span style=”color:#800000″>system-properties</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”><</span><span style=”color:#800000″>property </span><span style=”color:#ff0000″>name</span><span style=”color:#0000ff”>=”java.util.logging.config.file”</span><span style=”color:#ff0000″> value</span><span style=”color:#0000ff”>=”WEB-INF/logging.properties”</span><span style=”color:#0000ff”>/></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”> </span><span style=”color:#0000ff”></</span><span style=”color:#800000″>system-properties</span><span style=”color:#0000ff”>></span><span style=”color:#000000″>
<img src=”http://www.blogjava.net/Images/OutliningIndicators/None.gif”></span><span style=”color:#0000ff”></</span><span style=”color:#800000″>appengine-web-app</span><span style=”color:#0000ff”>></span></span>
这里需要注意的两个地方:
1)myqiao-app 是我的 GAE 帐号,这里您需要改成您的;
<span style=”color:#000000″>2) <span style=”color:#0000ff”><</span><span style=”color:#800000″>include </span><span style=”color:#ff0000″>path</span><span style=”color:#0000ff”>=”/**.jpg”</span>
<span style=”color:#0000ff”>/> </span>这一句,告诉所有的 jpg 文件都是静态文件,都可以访问
3)关闭 run.bat 命令行窗口,在 Netbeans 中对项目 “清理并生成”,如果一切正常就可以上传了</span>
13、建立一个 upload.bat 文件,内容如下:E:appenginesdkinappcfg.cmd update E:gaejavaHellouildweb
运行它,第一次运行的时候,您需要根据提示输入您的 gmail 帐号和密码,您就可以看见上传进度了:如图:
<img src=”http://www.blogjava.net/images/blogjava_net/myqiao/gae_10.jpg”>
14、浏览我的网址:
欢迎大家来我的新家疯狂留言,进行残酷的压力测试,看看能不能把它刷爆,呵呵。
我的GAE主页是:<a href=”http://myqiao-app.appspot.com/exercise/” target=”_blank”><span style=”color:#4371a6″>http://myqiao-app.appspot.com/exercise/</span></a>
什么?出现了乱码?这是目前 GAE SDK 的小问题,有两个办法:1、把 index.jsp 动态文件改成 index.html 静态文件 2、到 linux 下开发
怎么样,很简单吧!动手试试吧[/font][/font][/font]<span style=”font-family: Georgia;”><span style=”font-size: 10px;”><span style=”color:#4b4b4b”> </span></span></span>