使用和不使用GAE存储超过500个字符的字符串/文本值

时间:2013-07-01 08:18:53

标签: java google-app-engine google-cloud-datastore

我用JPA2制作了一个GAE-Project用于数据库访问。我存储了一些超过500个字符的字符串,因此我使用了com.google.appengine.api.datastore.Text。

我有一个接口Script.java,它将值定义为String,以及一个ScriptImpl.java,它内部有一个Text成员,并转换为获取和设置。

因为项目的一个要求是,它仍然可以在一个简单的tomcat上运行,后面有一个数据库。因此必须能够在谷歌环境内外运行。

是否有一些实际的方法来实现我的应用程序,所以我可以切换到正常的tomcat环境(例如通过弹簧配置使用不同的bean ......)。

在两种环境中我还需要注意什么才能使其工作?如何处理GAE接缝的部件?

  

更新:到目前为止,我发现了以下批评问题:Google用户服务&登录过程,域模型中的文本类,Wicket-GAE-Initializer(因为我使用Wicket)

2 个答案:

答案 0 :(得分:2)

GAE拥有自己的专有API。如果您使用此API编写应用程序,那么如果您想要离开GAE,您有两个选择:

  1. 显然,重写您的代码。
  2. 使用实现GAE API但在其他平台上运行的API包装器。这种包装的一个例子是AppScaleCapeDwarf。 AppScale较旧,可能更成熟,支持Java和Python。它还支持更多平台(私有服务器+云)。 OTOH,CapeDwarf针对的是JBossAS7,因此如果您使用该服务器(或OpenShift云),它可能更适合。此外,我猜你可以期待来自RedHat这样的成熟开源领导者提供更好的支持。

答案 1 :(得分:1)

虽然理论上可以包装GAE功能,然后将其委托给app引擎或“普通”环境,但这可能需要付出很多努力。

可能另一种方法会更容易。你知道CapeDwarf吗?

JBoss CapeDwarf

  

在您自己的私有上部署和运行Java App Engine应用程序   JBoss Application Server(AS7)集群或RedHat的OpenShift云。

     

JBoss CapeDwarf是Google App Engine API的一个实现,   它允许在JBoss应用服务器上部署应用程序   没有修改。在幕后,CapeDwarf使用现有的JBoss   诸如Infinispan,JGroups,PicketLink,HornetQ等API。

如果确实需要“使用数据库的简单tomcat”,那么更多信息或约束将有助于了解。