将java web程序发布到Google App Engine上(Windows,命令行)
Google开放了App Engine的java平台,供java爱好者们把自己的程序发布到网上。最重要的一点是:它是免费的!下面将讲解如何将java程序发布到App Engine上去。(Windows,命令行)
在Google官方的英文的文档(http://code.google.com/intl/en/appengine/docs/java/gettingstarted/uploading.html)中有详细的讲解,你英文好的话,可以去那里看看。如果你在发布的过程中遇到了问题,再回到这里也不迟。
首先你要注册你的应用,即开通App Engine功能(http://appengine.google.com/)。记住你的application-id。
打包你的程序之前,你需要在WEB-INF文件夹下添加一个appengine-web.xml文件,把下面内容中application-id换成你的实际id就可以了:
<?xml version="1.0" encoding="utf-8"?><appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application>application-id</application> <version>1</version></appengine-web-app>
建议你把UTF-8作为所有文件的编码,否则可能会出现意外效果。①
建立工程并打包之后,你会得到一个app.war,由它解压出来的目录比如为E:\app,现在下载并解压Google提供的SDK,用记事本打开,把@java换成@你的JDK路径,形如:(引号在路径中有空格的时候不能去掉)②
@"C:\Program Files\Java\jdk1.6.0_14\bin\java" –cp …
保存后,用命令行进入到它的解压文件夹下的bin文件夹,附带参数为“空格update E:\app”,例如:
E:\Program Files\appengine-java-sdk-1.2.1\bin>appcfg.cmd update E:\app
接着会提示你输入邮箱名和密码,看见“Success.”就说明成功了。
之后访问http://appengine.google.com/就可以看到你的应用列表了。
由于最多有10个应用,还不能删除,所以当你下次更新的时候就不要改appengine-web.xml中的version了,以免浪费应用个数。Google App Engine有很多特性不支持,比如数据库不能用Hibernate(除非你封装JPA),然而你可以试试用其他的数据库,比如你现在的空间的数据库,远程连接就可以了。你也可以去专门买个数据库试试。如果你使用工厂模式开发数据库的DAO的话,你也可以重写一个DAO实例。
有问题欢迎留言。
注释:
①有些朋友在设为其他编码是会出现jsp中文乱码的问题,但我测试的时候没有碰到,可能已经被fix了
②如果你装了jre,那么App Engine会自动用它的java.exe而不是JDK的,这样就会出现找不到javac.exe错误(cannot find javac executable based on java.home)。解决办法如上,引用:http://code.google.com/p/googleappengine/issues/detail?id=1226#makechanges。错误信息如下:
java.lang.IllegalStateException: cannot find javac executable based on java.home, tried "C:\Program Files\Java\jre6\bin\javac.exe" and "C:\Program Files\Java\bin\javac.exe"Unable to upload app: cannot find javac executable based on java.home, tried "C:\Program Files\Java\jre6\bin\javac.exe"and "C:\Program Files\Java\bin\javac.exe"