网上的免费jsp空间很少,app engine就提供了这样一个环境。
抱着对免费空间的使用心态,自己做了一个blog网站,想传到google中来供自己使用。却不想因google的
种种限制一直不能很好的运行,之后不得不对自己的项目进行一次次的改动,现在是终于可以正常的运行
了。这个版本可以说是第四个版本了。
在修正项目期间,所遇到的问题在网上找了N久,很少有正确解答的,都是copy来copy去,无奈之下,只
好自己慢慢摸索,几次之中都想直接放弃,从code google上直接down一个下来改改就行了。可我的心告
诉我,别放弃,再来一次,说不定这次就行了,做为一个程序员,没有什么代码问题是解决不了的。还好
我坚持了下来,能坚持下来的这种淡淡喜悦真是一种难得的舒适。
想想自己的辛苦,还是把到当前为此所遇到的一些为难的问题记录出来,让想在app engine中做项目却和
我遇到一样问题的朋友做个警示牌,朋友别放弃,也许这次就成功了。
废话不多说,来正题。以下所说的本地开发环境是指使用google所提供的sdk模拟环境
第一个版本
因为想快速开发个blog出来就使用了jsp做为页面表现,并且使用jsp做为了controller,具体架
构就略去,但在这里,我的jsp中使用了 <%@include file="..." %> ,这在正常情况下是没有任何问题。并且
在本地google所提供的开发环境中运行也是正常。但在进行上传时就出问题了,总是提示jsp文件编译错
误。在网上查了一圈,全部都是说与google的sdk包有关系,在上传时必须要使用google的sdk包进行编译
,但那个包中编译所使用的编码是默认编码,改成utf8的就行了。唉,查了一圈了,千篇一律全部都是这
个。我就把sdk包反编译,加入utf8编码,最后,无效... ,苦闷中。再次使用google,到国外去找一圈
,终于找到了几个描述和我的相似的问题,一开网页,却发现是以group.google打头,被国内封杀,无果
,最后对于那个在搜索结果中的只字片语进行模糊猜测,发现了有@ include字样,再次试验。ok,终于
可编译了。得出一个观点:在本文编写当前时间2011-3-17日之前,app engine是不支持jsp的
<%@include file="..." %>
写法的只支持<jsp:include page="..."/>,不知道那些把app engine用的呼呼的高手们有没有注意到这点啊。
第二个版本
因为一开以是以jsp为控制器和表现层的写法,当要删除@ include时改动也不小,将在jsp中所
写的action全部打散,分成单个jsp处理。但这次却出现新的问题。所分散开的jsp编译是没问题,但上传
之后却总是在处理时会出错,这下我可没办法了。这又不能远程debug,本地开发环境运行也正常。想去
解决却无从下手,如果在代码里打log慢慢查应该也是能查出来的,但我不想费这个时间了。也许google 对
jsp的支持还是没那么好吧。再说打散了以后的jsp已经不是我想写的那个架构了,放弃这个,使用
spring mvc来实现
第三个版本
终于还是用了别人的框架。我使用spring2.5并使用annotation快速的将自己的项目重新架一遍。ok,本地开发环境运行正常。上传成功。运行。。。失败。一头的瀑布冲了下来。我的天,这又是什么
问题。再去goole网上查一遍。无数的关键字都是spring mvc入门,就是没有我要的答案。终于在我忘了
名子的地方发现了某人的一句评语,真的就一句。app engine不支持annotation。我的眼前一片漆黑。。
。
第四个版本
无奈之中,再次改版。去除annotation,使用xml配置,上传,ok,终于可以运行了。嗯?等下
,怎么登陆出问题了!后台登陆是使用iframe结构,最后登陆时只能开一个iframe,别的都不行,再次从
址栏中打入页面地址被转到了登陆页面,也就是说,登陆时session存值无效!晕,再次上网搜索。无人
关心该问题。不知道那些把app engine玩出花来的高手们是怎么做的。验证后台的登陆全部都使用google
的用户模块?最后还是在老外一个不知名的网上中看到了几个字眼if use session ... implements
seril... 不会吧,难到是要序列化?怎么文档里也没有说明啊。。。 再次对session存值对象做序列化
,再次enhance,再次上传,再次运行。。。唉。。。成功。。。嗯,嗯?成功?哈哈,终于是成功了!
不管怎么样,blog是运行是成功了。
其实在使用app engine时还是遇到了很多其它的问题,就是限制的问题。比如,google为了保证数据库的
查询效率,不支持模糊查询。对于实体类String类型最多只支持255汉字,如果想要更长的,就使用google所提供的text类型,但这种类型是不支持排序的。使用有主的级联关系时,子类的pk只能是key类型,等等。。。最后一直解决,虽然对这些限制很是不满,不过,我有吃亏吗?我学到了那些为google工作的这些高手们对于效率的追求和解决方案。他们对于对象型数据库的解决方案。他们对所能提供最多功能时的标准限制决策。这些,无一不是珍贵的智慧结晶
最后想说,app engine 想说爱你不容易啊。。。
虽然国内对google封杀的很厉害,但是想要用它还是有办法的,具体办法去网上查这里不说了。
分享到:
相关推荐
This practical guide shows intermediate and advanced web and mobile app developers how to build highly scalable Java applications in the cloud with Google App Engine. The flagship of Google's Cloud ...
谷歌appengine依赖库,GWT编译需要引入此库,方便好用!
A good book to learn Google App Engine.
Google App Engine Documentation
appengine-tools-api.jar中文乱码, 修改appengine-tools-api.jar 以实现以UTF-8文件,编译. 使用方法: 1、用winrar找开eclipse\plugins\...
在搭建WebRTC(AppRTC)时,我们会遇到需要部署Google App Engine的难题,并且最近墙的厉害,所以我特地把我珍藏的Google App Engine 最新版(2020-7-5)分享出来,希望可以方便想搭建WebRTC(AppRTC)的同学们
Google App Engine文档
appengine-java-sdk-1.3.1 GoogleApp开发的SDK(Java版)
Google App Engine is a web application hosting service. By “web application,” we mean an application or service accessed over the Web, usually with a web browser: storefronts with shopping carts, ...
clock.rar 这是我今天做的一个基于google app engine写的一个在该平台上开发app的示例,通过该示例的学习,我们可以很快上手学会怎样在GAE上开发属于你的应用程序了,希望对大家有用!
The App Engine SDK for Java includes a local development server as well as the tooling for deploying and managing your applications in App Engine. By downloading, you agree to be bound by the Terms ...
Using Google App Engine
云应用开发——Google App Engine & Google Web Toolkit入门指南 Google App Engine入门 Google App Engine 开发人员指南
Google App Engine for Java 中文指南,Google App Engine for Java 中文指南
Google App Engine 入门
Eclipse Google 插件 Google App Engine SDK for Java Google App Engine文档 按钮 Google App Engine 开发包
Google App Engine 入门教程 eclipse插件 详情请参考我的博客
Google云端的一个重要部分,主要介绍了Google中App Engine的限制。
google app engine for python sdk
云端代码Google App Engine编程指南 人民邮电出版社 高清带书签