Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Servlets Java Play 2-部署_Servlets_Amazon Web Services_Playframework 2.0_War_Amazon Elastic Beanstalk - Fatal编程技术网

Servlets Java Play 2-部署

Servlets Java Play 2-部署,servlets,amazon-web-services,playframework-2.0,war,amazon-elastic-beanstalk,Servlets,Amazon Web Services,Playframework 2.0,War,Amazon Elastic Beanstalk,更新日期:2012年8月18日 我正在使用Play 2.0.2,我想将我的应用程序部署到Amazon Web服务。我认为最简单的方法是通过Elasticbeanstalk 我使用Play2war打包我的应用程序 我能把它包装起来 play war 根据play2war的使用指南,我将文件重命名为ROOT.war,因为我使用的是Linux 32位Tomcat7 我还使用了Servlet3.0,如play2war教程中所述。(Tomcat7->Servlet3.0) 文件大小为31mb 每次我使

更新日期:2012年8月18日

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

我使用Play2war打包我的应用程序

我能把它包装起来

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

我还使用了Servlet3.0,如play2war教程中所述。(Tomcat7->Servlet3.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.
我用Linux32/64位、Tomcat7(Servlet3)和Tomcat6(servlet2.5)测试了它。我总是得到同样的结果

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

  • 你建议我做什么

  • 要让我的应用程序在ec2上运行,我需要哪些替代方案

  • 是否有一个指南解释了我如何手动将我的应用程序部署到ec2,以及所需的所有依赖项,如mongodb、play等

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


信息:基于APR的ApacheTomcat本机…
不是重要部分。Tomcat将在没有它的情况下启动,编译它不会使您的实例保持健康。事实上,您的
catalina.out
日志记录看起来完全正常


我猜Beanstalk的错误消息是准确的:您的健康检查URL配置错误。无论出于何种原因,您的应用程序都无法在端口80上返回根文档,这一问题可能会以几种方式出现。尝试将静态html或简单jsp页面添加到应用程序的根目录(战争中的顶级目录),并让Beanstalk检查。Beanstalk的默认端口配置应该可以正常工作(如果我没记错的话,它会通过apache将流量传递给tomcat,但我已经有一段时间没看了),但是检查
$CATALINA_HOME/conf/server.xml
看看有什么问题。

你不应该把你的应用程序打包成战争,除非您有义务这样做或者有很好的理由,比如框架(即使使用Servlet3.0)

一个选项是通过服务部署您的应用程序。该服务运行并使您能够轻松地选择堆栈和垂直缩放。当然,你必须决定是否是,但你可以免费测试

还有其他PaaS提供商,允许您部署play 2应用程序:


好的,我知道这不是对你问题的直接回答,因为我没有使用beanstalk,而是你在其中一条评论中要求的:

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

  • 在本地计算机上的项目目录中,运行
    playdist
  • 发送
    dist/yourapp-1.0-SNAPSHOT.zip文件(或您拥有的任何dist名称
    已配置)到EC2实例
  • ssh到您的实例
  • 将dist文件解压缩到所需目录中,然后
    cd
  • 运行
    chmod+x start
  • 运行
    nohup./start&
  • 现在,您的play2应用程序在EC2上本机运行,带有websocket和所有很酷的东西。我不需要在游戏中配置任何特殊的东西来让它工作。我使用的是一个RDS数据库,配置为任何其他正在使用的数据库

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


    我希望这能有所帮助。

    如果您愿意升级到Play 2.3.x或更高版本,请使用本机Play 2支持解决此问题

    现在,您只需运行my-play-app-1.0.zip-env=prod即可执行
    boxfuse操作,这将自动:

    • 为您的Play 2应用程序定制一个最小的AMI
    • 创建一个弹性IP
    • 创建具有正确权限的安全组
    • 启动应用程序的实例
    所有未来的更新都以蓝/绿部署方式执行,无停机时间

    这也适用于弹性负载平衡器和自动缩放组,Boxfuse free tier专为适应AWS free tier而设计

    您可以在此处阅读更多信息:


    免责声明:我是Boxfuse的创始人和首席执行官

    我不理解您的日志中没有任何错误,您为什么不能查看错误日志?对不起,我昨天真的很累。它应该是“日志中总是相同的错误”,谢谢,我会调查的。但我对Web服务器还是很陌生,所以需要一段时间才能再次响应。只需尝试一个只说“ok”的HTML页面。这至少会将它与健康检查或Tomcat隔离。是的,谢谢,我正在使用heroku,但我有一个问题,Servlet3.1会解决所有问题吗?或者本地play2客户端总是更好吗?我想了解如何将本机play2应用程序部署到ec2。你能给我推荐一些资源吗?谢谢,这就是我要找的。有一个问题,我正在使用MongoDB,我必须在我的linux实例上手动安装依赖项,还是play为我做了一切?我必须说我没有使用MongoDB,所以我不能确定。Play应该注意获得正确的库来编译和运行,但是您必须在某个地方运行mongoDB服务器。如果您也计划在EC2上运行此功能,那么您也必须手动启动服务器(据我所知,您无论如何都不能在beanstalk上运行mongoDB服务器)。但是,您可以使用托管的mongoDB服务器(例如mongolab),或者您可以使用亚马逊自己的RDS、SimpleDB或Dynamo。此外,我刚刚发现:这显然是关于play1的,play2的部署可能与play1不同,但它可能会帮助您。而且,mongoDB有一个页面焦点