Java Play 2 - 部署

Mai*_*ein 0 servlets war amazon-web-services playframework-2.0 amazon-elastic-beanstalk

更新于08.18.2012

我正在使用Play 2.0.2,我想将我的应用程序部署到Amazon Webservices.我认为最简单的方法是通过Elasticbeanstalk.

我使用Play2war打包我的应用程序 https://github.com/dlecan/play2-war-plugin/

我能够打包它

play war
Run Code Online (Sandbox Code Playgroud)

根据play2war的使用指南,我将我的文件重命名为ROOT.war,因为我使用的是Linux 32bit Tomcat7.

我还使用了play2war教程中描述的servlet 3.0.(tomcat 7 - > servlet 3.0).

文件大小为31mb.

每次我使用Elasticbeanstalk时,我都会得到相同的日志.

2012-08-18 00:25 GMT+0200
WARN
Environment health has been set to RED
2012-08-18 00:25 GMT+0200
INFO
Launched environment: elosource. However, there were issues during launch. See event log for details.
2012-08-18 00:25 GMT+0200
INFO
Your health check URL may be misconfigured. If your application does not respond to requests at http://elosource.elasticbeanstalk.com:80/, modify the health check URL to a valid path.
Run Code Online (Sandbox Code Playgroud)

我用Linux 32/64位,Tomcat7(servlet 3)和Tomcat6(servlet2.5)测试了它.我总是得到相同的结果.

我还尝试为健康检查器添加一个额外的html文件.

  • 你会建议我做什么?

  • 我有什么选择让我的应用程序在ec2上运行?

  • 有没有一个指南解释我如何手动将我的应用程序部署到ec2,具有所有需要的依赖性,如mongodb,play等?

  • WAR文件相对较大~30mb,使用我的dsl 1k上传这样一个lage文件真是太痛苦了.有没有办法只使用Elasticbeanstalk上传更改?

Mor*_*mer 5

好的,我知道这不是你问题的直接答案,因为我没有使用beanstalk,但正如你在其中一条评论中提出的那样:

以下是我安装了jvm 的linux EC2实例上运行我的play2应用程序的方法:

  1. 在本地计算机上,在项目目录中运行 play dist
  2. dist/yourapp-1.0-SNAPSHOT.zip文件(或您配置的任何dist名称)发送到EC2实例
  3. ssh到你的实例
  4. 解压的目录你想要的DIST文件,并cd
  5. chmod +x start
  6. nohup ./start &

你现在让你的play2应用程序在EC2上本地运行,带有websocket和所有很酷的东西.我没有必要配置任何特殊的游戏工作.我正在使用配置为任何其他数据库的RDS数据库.

显然,它比beanstalk更麻烦,因为您必须自己配置服务器并手动设置自动缩放.但这是我发现使用AWS上的所有功能运行play2的最佳方式.

我希望这有帮助.