`

App Engine 初步使用时所遇问题

阅读更多

  网上的免费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封杀的很厉害,但是想要用它还是有办法的,具体办法去网上查这里不说了。  

 

1
0
分享到:
评论
1 楼 hippostart 2011-03-19  
我用 gae/j 没有遇到楼主这么多问题,我的搭配是 maven + spring + spring web mvc + velocity,没有用 jsp, 也没用jdo, jpa,直接用底层api访问datastore。因为那个是基于bigtable的NoSQL数据库来的,模拟成jdo,jpa之后更麻烦

相关推荐

    appengine-java-sdk-1.3.1 GoogleApp开发的SDK(Java版)

    标题中的"appengine-java-sdk-1.3.1"指的是Google App Engine的Java版本SDK,这是一个用于在Google云平台上开发和部署Java应用程序的工具包。这个SDK包含了运行和测试Google App Engine应用所需的所有组件,包括开发...

    Google App Engine 入门教程

    综上所述,入门教程涉及到了安装与配置Eclipse开发环境、安装Google App Engine插件、创建和配置Web应用项目以及编译时的Java版本兼容性问题,这些知识点对于想要开始使用Google App Engine开发Web应用的开发者来说...

    appengine-java-sdk

    3. **数据存储**:AppEngine使用NoSQL的Datastore作为默认数据库,提供了对非关系型数据的强大支持。SDK提供了低级别API和JDO/Persistence API,方便开发者操作数据。 4. **部署工具**:SDK附带了appcfg命令行工具...

    Google App Engine文档

    **Google App Engine**是Google提供的一种云计算平台,用于构建和托管Web应用程序。它允许开发者使用Python、Java、Go或...开发者还需要熟悉所选编程语言的App Engine SDK和最佳实践,以便高效地构建和维护云原生应用。

    Google App Engine Documentation

    在“google-appengine-docs-20081003”这个压缩包中,可能包含了早期版本(2008年10月3日)的Google App Engine开发指南、API参考、最佳实践和示例代码等内容。这些文档帮助开发者了解如何利用Google App Engine构建...

    google_appengine_1.9.50.zip

    这个"google_appengine_1.9.50.zip"压缩包包含了 Google App Engine 的 Python SDK,版本为1.9.50。 **Google App Engine 的主要特点:** 1. **自动缩放**:根据应用程序的需求,Google App Engine 可以自动调整...

    云端代码Google App Engine编程指南 高清带书签

    在《云端代码Google App Engine编程指南》中,可以预见到将会有详细的介绍关于如何使用Google App Engine平台进行开发的内容。书籍可能会涵盖以下几个方面的知识点: - GAE环境设置:介绍如何搭建和配置Google App ...

    Programming Google App Engine

    A good book to learn Google App Engine.

    修改appengine-tools-api.jar文件,解决jsp乱码

    appengine-tools-api.jar中文乱码, 修改appengine-tools-api.jar 以实现以UTF-8文件,编译. 使用方法: 1、用winrar找开eclipse\plugins\...

    google app Engine for java中文api

    - **Java Data Objects (JDO) 和 Java Persistence API (JPA)**:这两种Java持久化标准均被App Engine for Java所支持。通过这些标准,开发者可以方便地将Java对象映射到数据库表中,实现数据的存储和检索。 - **...

    appengine-java-sdk-1.8.7.zip

    2. **创建项目**: 使用SDK创建一个新的App Engine项目,这将生成基本的项目结构,包括必需的配置文件如`appengine-web.xml`和`web.xml`。 3. **编写代码**: 开发者使用Java语言编写应用代码,可以使用SDK提供的API...

    Google App Engine for Java 中文指南

    Google App Engine for Java 是一个平台,允许开发者使用Java语言构建并托管网络应用程序,该平台运行在Google的强大可扩展基础设施上。这个平台的核心特性是它的Java运行时环境,它基于Java 6虚拟机(JVM),并且...

    Using Google App Engine

    ### 使用Google App Engine:深入解析与实践 #### 核心知识点概述 Google App Engine(GAE)是Google推出的一款用于构建和托管Web应用的平台服务,它为开发者提供了丰富的工具和资源,使得开发者能够轻松地在...

    google app engine示例源代码

    clock.rar 这是我今天做的一个基于google app engine写的一个在该平台上开发app的示例,通过该示例的学习,我们可以很快上手学会怎样在GAE上开发属于你的应用程序了,希望对大家有用!

    google appengine sdk for java

    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 ...

    google_appengine_1.9.50.7z

    这个"google_appengine_1.9.50.7z"是一个压缩包,包含了Google App Engine的Python SDK版本1.9.50。这个SDK是开发人员用来在Google的基础设施上构建和部署Python应用程序的工具集。 首先,我们要了解Google App ...

    Google App Engine的一些限制

    #### 使用Google App Engine的配额 在GAE上部署的应用程序会消耗一定的资源,并受到一系列配额的约束。这些配额确保了应用不会超出预算,同时也避免了某个应用过度占用资源而影响其他应用的性能。 ##### 安全限制...

Global site tag (gtag.js) - Google Analytics