appengine是google的云计算平台,目前支持java, python语言开发网站等程序。我准备把最近开发的一个web迁移到appengine上面。这里记录所碰到的问题。
系统采用JPA + spring annotation transaction + spring annotation MVC作为框架。
1。 enitity id
以前采用Integer作为enitity id,现在迁移appengine需要使用Long类型。
从跨平台的角度考虑,gae要求对象必须属于一个对象组,这样子对象使用String作为id。如果使用Hibernte +mysql平台的时候,必须使用uuid方式生成主健。可以参见如下的文章:http://xiaogui9317170.iteye.com/blog/283526
2。 JPQL query string
由于以前使用 hibernate + JPA,因此查询语句使用HQL是没有问题的。比如 'from User u'; 但是appengine使用标准的JPA, 应当修改为'select u from User u'。
3。eager loading 不支持
Child objects are loaded from the datastore when they are accessed for
the first time. If you do not access the child object on a parent
object, the entity for the child object is never loaded. (The datastore
interface does not support the "eager" loading of child objects. The
datastore does not support join queries, so an implementation of eager
loading wouldn't save the app a call to the datastore.)
4。关联关系
A relationship between persistent objects can be described as owned,
where one of the objects cannot exist without the other, or unowned,
where both objects can exist independently of their relationship with
one another.
The child class must have a key field whose type can contain the parent
key information: either a Key, or a Key value encoded as a string.
App Engine does not support join queries: you cannot query a parent
entity using an attribute of a child entity. (You can query a property
of an embedded class, because embedded classes store properties on the
parent entity
5。Spring框架
通过实验发现,spring2.5由于依赖了Javax.naming包而无法在GAE环境中运行正常。参考了GAE issue1240里面的方法,系统终于能正常运行,但是entityManager无法通过spring的@PersistContext设置成功。最后全部采用spring3后系统终于能正常运行。
分享到:
相关推荐
Eclipse Google插件为这个环境提供了集成开发环境的支持,它在Eclipse中增加了新的项目向导和调试配置,简化了在App Engine上开发的应用程序管理。此外,App Engine for Java与Google Web工具包(GWT)兼容,让开发者...
3. **Django与App Engine集成**:这涉及到将Django项目配置为在App Engine上运行,可能需要修改WSGI服务器、设置环境变量、处理静态文件和媒体文件的存储,以及解决两者之间的兼容性问题。 4. **App Engine SDK**:...
在产品定位上,百度App Engine类似于互联网服务的“Windows单机程序”,但更侧重于为用户提供在线服务的开发和运行平台。它兼容多种编程语言,如C/C++、Java、PHP等,且面向多线程、多进程以及网络编程模型。与传统...
Python 2 App Engine应用程序迁移到现代运行时,Cloud服务,Python 3和Cloud Run容器 (标准版)在旧版平台和下一代平台之间进行了重大更改。为了解决这个问题,我们创建了一组代码实验室(免费,在线,自定进度,...
【标题】:“migae-examples:Clojure中的Java servlet编程示例,包括appengine应用” 这个项目名为“migae-examples”,主要是为开发者提供一个使用Clojure语言进行Java Servlet编程的实践平台,特别强调了它适用于...
**Google App Engine (GAE)** 是谷歌提供的一种云端平台,允许开发者构建并托管Web应用程序。GAE支持多种编程语言,其中Python是早期支持的语言之一。标题提到的是"GoogleAppEngine-V1.9.50",这是一个特定版本的...
端点Java框架 Endpoints Java Framework旨在成为帮助以Java创建RESTful Web API的简单解决方案。... endpoints-framework :所有构建Endpoints应用程序...此版本替代了旧的appengine-endpoints工件。 您应该使用com.googl
`gae-datastore-migrator` 是一个专门为 Google App Engine (GAE) 设计的工具,它的主要功能是帮助用户将 GAE 的数据存储(Datastore)中的实体转换为 CSV 文件格式,同时也支持从这些 CSV 文件中重新导入数据到 ...
您不需要有效的 app-id 即可在本地运行,但需要有效的 id 才能在下面进行部署。 克隆这个 repo。 git clone https://github.com/GoogleCloudPlatform/<REPO>.git 从命令行在本地运行此项目。 gcloud preview ...
java源码留言本注意 此软件包为 Cloud Endpoints Frameworks v1 提供 Go 支持,该版本已弃用,将于 2018 年 8 月 2 日关闭。...迁移到 ...GO_APPENGINE/goapp get github.com/GoogleCloudPlatform/go-endp
通过在本地环境中模拟这些API,AppScale能够确保在Google App Engine上运行的应用程序无需任何改动即可在其平台上运行,极大地促进了开发者社区的成长,同时也便于研究真实应用案例,探索公有云系统的潜在改进与扩展...
我们还需要具体了解每个主要PaaS提供商当前提供的服务,比如Google App Engine的App Engine Flexible Environment支持用户在Google的基础设施上灵活运行应用程序。Windows Azure提供了.NET开发者熟悉的环境,同时...
适用于Google app-engine的命令行pastebin,在中使用。 要求: 。 当前正在使用1.6版。 。 版本2: 几乎完整的重写,应该对用户透明。 Sprunge内容存储在Blobstore中(实际上是Cloud Storage的“默认存储区”...
在教育科研领域,学习工具的使用正逐渐向云端迁移,PaaS(Platform as a Service)云平台成为了一个重要的载体。这种平台为教育工作者和学生提供了便捷的部署、管理和交互资源的方式,大大提升了教学效率和科研能力...
这个项目的主要目的是展示如何利用Django的强大功能来创建一个功能完备的购物系统,并将其部署到新浪App Engine(SAE)上,这是一个云服务平台,提供了方便的应用托管服务。 首先,Django是一个高级的Web应用框架,...
跨云平台能力是Latke的一个重要特性,它支持在不修改代码的情况下,将应用从一个云平台迁移到另一个云平台,例如从Google App Engine(GAE)迁移到Baidu App Engine(BAE),同时还支持不同云平台间的数据迁移。...
无论是在Google App Engine上运行的应用还是独立使用Cloud Datastore的服务,这个库都是Go开发者的重要助手。通过熟练掌握这个库,你可以充分利用Cloud Datastore的特性,构建高效、可扩展的Go应用。
其中,新浪推出了两个重要的对外产品:面向开发者的PaaS平台——SAE(Sina App Engine),以及面向终端用户的SaaS产品——微盘。 #### 第一阶段:物理机集群到IaaS平台 随着虚拟化技术的兴起和发展,新浪决定将其...
AppScale 是一个开源的平台即服务(PaaS)系统,它允许用户在各种基础设施上部署和管理应用程序,包括Google App Engine兼容的应用程序。这个“appscale-tools-1.2.tar.gz”压缩包包含了AppScale工具的版本1.2,它是...