【问题标题】:Standard Java webapp with optional Google App Engine support具有可选 Google App Engine 支持的标准 Java webapp
【发布时间】:2015-01-28 16:11:09
【问题描述】:

我已经构建了许多在 Tomcat 和 Jetty 等标准容器中运行的 Java Web 应用程序,但我之前从未构建过在 Google 的 App Engine 中运行的应用程序。我正在使用 Maven,所以我最初认为我可以使用构建配置文件来执行此操作,以便在构建时选择性地包含 Google 的库以制作与 App Engine 兼容的 WAR。

不幸的是,它似乎比这更复杂。在阅读文档时,您似乎必须编写大量非常具体的代码才能使用 App Engine。例如,所有的文件系统写入都需要经过 App Engine 数据存储,所以不能使用原生的java.io.* 库。

我理解为什么这些东西是必要的,我不介意在我的 web 应用程序中包含这些代码。但是,我真的不喜欢我的网络应用只能在 App Engine 上运行的想法。以这样一种方式编写我的代码,以便我也可以在像 Tomcat 这样的典型容器中运行它是否可能/可行?

【问题讨论】:

    标签: java google-app-engine maven tomcat web-applications


    【解决方案1】:

    这主要取决于您的应用要做什么。一旦你想对数据存储做一些事情,或者例如缓存,你就会遇到麻烦。也许您可以包装数据存储调用或缓存,但某些 api,例如您可以忘记的搜索。如果你只是想在本地运行一些没问题的东西,你可以在本地模拟应用引擎。

    【讨论】:

    • 是的,我知道您可以使用 SDK 在本地运行您的应用程序。我真的不喜欢我的应用程序无法再在普通 servlet 容器中运行的想法。
    • 您还可以拆分逻辑、用于标准内容的标准容器或 gae 不支持的内容,例如套接字(可能现在不确定是否支持),然后是 GAE Servlet。不过,标准容器不支持开箱即用的负载平衡。
    • 我有点害怕。我仍然不完全确定有多少代码需要以这种方式隔离,因为我是新手。我怀疑我做了很多 GAE 无法做到的事情,但有点担心你需要在构建中包含这么多库才能使用它。
    猜你喜欢
    • 1970-01-01
    • 2017-03-30
    • 2014-11-27
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2012-12-17
    • 1970-01-01
    相关资源
    最近更新 更多