我一直在网上搜索 Google App Engine 的 Apache Shindig Java 端口,但我只找到了 Python 版本。有 Java 端口吗?或者是否存在阻止将 Apache Shindig 移植到 Google App Engine 变得非常困难的依赖项(除了数据库部分)?
2 回答
不幸的是,目前没有 Apache Shindig 的 GAE Java 端口。但是,您确实有以下选择:
- 如果您考虑自己移植到 Java 端口,我还建议从现有的 Python-GAE 端口或 PHP-non-GAE 端口开始,而不是从 Java-non-GAE 端口开始。
- 此外,您可以考虑在 GAE Java SDK 上使用 Jython 运行 Python-GAE 移植,而不是从头开始移植您自己的版本。
阅读下文了解更多详情:
使用 Jython 将 Python-GAE 移植到 java-GAE:
使用 Jython 抽象的主要优点如下:
- 您可能会尽快启动并运行一个有效的 Java-GAE SDK 版本。
- 在您的业务目标允许的情况下,将来您仍然可以选择将 Jython 代码以小迭代方式移植到纯 Java。
附带说明一下,我有一个在 Java SDK 上运行的 JQuery Form Builder Plugin 版本:
- 最初用 PHP 为 LAMP 堆栈编写
- 在 GAE-Java SDK 上运行
- 使用 Querces PHP Servlet 将 PHP 编译为 Java。
- 原始的 Form Builder PHP 代码可以访问一个 Java DAO 类,该类是我作为数据存储的包装器编写的。
Jython 是一个类似的抽象,它可能以类似的方式提供帮助并避免重写大部分代码的需要。阅读下面有关 Google App Engine 上的 Jython 开发的更多信息:Google App Engine 上的 Jython 开发
避免尝试从 Java-non-GAE 移植到 Java-GAE
Java 版本的 OpenSocial 应用程序是多线程的,因此在 App Engine 上运行会遇到很多麻烦。此外,将 PHP 版本移植到 Java 肯定更容易,因为 App Engine 目前不支持多线程,而且 PHP 版本很可能不是多线程的。
因此,这就是为什么 Python OpenSocial 端口的根源属于 PHP 版本的 Shindig/OpenSocial 而不是 Java 端口的原因。如果您决定从非 GAE 版本移植,我建议跟随他们的领导并做同样的事情。
Appengine 上似乎没有专门在 Java 上运行的项目。但是应该可以将当前的 java 版本移植到 Appengine,因为有一个具有相同限制的 python 版本。