【问题标题】:Deploy Dropwizard on Google AppEngine在 Google AppEngine 上部署 Dropwizard
【发布时间】:2013-02-28 20:08:40
【问题描述】:

我一直在尝试找到一种在 Google AppEngine 上部署 Dropwizard 应用程序的方法,但到目前为止我还没有找到任何东西。

question(和answer)来看,我认为这可能是不可能的。 我想确定这一点,如果它确实有效,我想了解一下。

有一个名为 warwizard 的 dropwizard 分支,它显然可以让您从 dropwizard 代码创建 war 文件,但它已经 6 个月没有被触及,这可能会使使用 dropwizard 文档变得困难。

【问题讨论】:

  • 我认为这是可能的,前提是只涉及那些对 GAE 友好的课程。
  • 我仍在尝试构建 Warwizard,并且需要验证这一点,但同样,我没有看到任何无法实现这一点的东西,查看大多数更改将在“核心上的码头',以及应该为 GAE 数据存储修改的数据库

标签: google-app-engine dropwizard


【解决方案1】:

Dropwizard 只是将 Jersey+Jackson+Jetty 很好地捆绑在一起。 Jetty 和 App Engine 无法相处(即App Engine is already running Jetty,因此它不希望应用程序提供自己的)。

如果没有 Dropwizard 将它们捆绑在一起,您可能最好使用 Jersey 和 Jackson:http://blog.iparissa.com/googles-app-engine-java/google-app-engine-jax-rs-jersey/ & http://www.cowtowncoder.com/blog/archives/2009/11/entry_338.html

【讨论】:

    【解决方案2】:

    但是,您可以在 Google Compute Engine 上运行 Dropwizard。这基本上只是谷歌提供的 Linux 虚拟机,如果需要可以访问它们的 API。

    我设法通过在 GCE 上执行以下操作来让我的 Dropwizard 实例工作:

    安装 Java

    sudo apt-get install java7-runtime-headless 
    

    打开防火墙端口:

    gcutil addfirewall rest --description="http" --allowed="tcp:8080
    gcutil addfirewall admin --description="admin" --allowed="tcp:8081"
    

    复制文件到 GCE

    gcutil --project={project-id} push {instance-name} {local-file} {remote-target-path}
    

    运行您的应用

    java -jar your-app.jar server your-config.yml
    

    编辑:还有另一种称为 wiztowar https://github.com/twilio/wiztowar 的替代方法,它仅支持 DW 0.6.2。

    【讨论】:

      【解决方案3】:

      在过去的两个月里,我一直在尝试解决这个问题。以下是我的发现:

      1- 是的,您可以将 Dropwizard 部署为 WAR 文件。您需要使用一些 hacks,例如 Wizard in a boxWizToWar

      2- 不!您无法在 AppEngine 标准环境中部署该 WAR 文件。

      为什么? 主要问题是 AppEngine 使用的是 servlet-api v2.5(已有 10 多年的历史了!)并且没有升级到 servlet-api v3 或更高版本的计划。另一方面,Dropwizard 需要 servlet-api v3 或更高版本。

      但请稍等!还有一个选择

      您可以在 App Engine Flexible Environment 上部署 Dropwizard

      App Engine Flex 仍处于测试阶段,但我听说它将在 2017 年第一季度公开使用。如果您想现在使用它,您必须要求为您启用它。

      您如何在 App Engine Flex 上进行部署?

      -> 我已经把所有的步骤都放在了一篇博文中: Deploying Dropwizard on App Engine Flex

      【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 2013-09-28
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      相关资源
      最近更新 更多