2013-02-28 80 views
11

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

通过这个question(和answer)来判断我认为这可能是不可能的。 我想确定一下,如果没有工作,我想学习如何。

有一个叫做warwizard的dropwizard叉子,它显然可以让你从你的dropwizard代码创建war文件,但是它已经超过6个月没有被触及,这很可能使得使用dropwizard文档变得很困难。

+0

我认为这是可能的,前提是只有那些GAE友好班级都参与其中。 – xybrek 2013-03-15 09:31:45

+0

虽然我仍然试图构建warwizard,并且需要验证这一点,但是我再次看不到任何不会使这成为可能的事情,查看代码大部分更改将在核心上的“码头”上,以及还应该修改GAE数据存储库中的db – xybrek 2013-03-15 09:38:09

回答

7

在谷歌计算引擎但是,您可以运行Dropwizard。基本上只有Google提供的Linux虚拟机,如果需要的话可以访问它们的API。

我manged让我Dropwizard实例做对GCE以下工作:

安装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只。

0

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

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

2- 没有!您不能在AppEngine标准环境中部署该WAR文件。

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

但等等!还有另一种选择

您可以在App Engine Flexible Environment

应用程序引擎的Flex部署Dropwizard仍处于测试阶段,但我听说如果你现在想使用它,将可用于在2017年第一季度公共使用,你必须要求为你启用它。

如何部署App Engine Flex?

- >我已经把所有的步骤做,在一个博客张贴在这里: Deploying Dropwizard on App Engine Flex

+0

您不需要今天使用flex env,它对公众开放(作为beta版本,为true)。 AFAIK只需要填写表单,如果您想将其用于自定义域(从https://cloud.google.com/appengine/docs/flexible/python/upgrading) – 2017-01-12 19:57:42

+0

太棒了!感谢您的更新:+1: – 2017-01-12 20:00:56

相关问题