【问题标题】:Storing String / Text values over 500 Chars with and without GAE使用和不使用 GAE 存储超过 500 个字符的字符串/文本值
【发布时间】:2013-07-01 08:18:53
【问题描述】:

我使用 JPA2 制作了一个 GAE 项目以进行数据库访问。我存储了一些超过 500 个字符的字符串,所以我使用 com.google.appengine.api.datastore.Text。

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

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

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

在这两种环境下我还需要注意什么?如何处理与 GAE 缝合的部分?

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      虽然理论上可以封装 GAE 功能,然后将其委托给应用引擎或您的“正常”环境,但这可能需要付出很多努力。

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

      JBoss CapeDwarf

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-12-01
        • 1970-01-01
        • 2014-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        • 2011-04-25
        • 1970-01-01
        相关资源
        最近更新 更多