谁能解释一下比赛时会发生什么!应用程序部署为战争文件?

时间:2011-08-06 14:24:21

标签: tomcat deployment playframework servlet-container

Play framework不支持servlet规范,但在deployment options中,可以将整个应用程序打包到war文件中并将其部署到任何servlet容器中。

从第1.1节开始,play使用netty作为集成的Web服务器。

我想知道在war文件中部署播放应用时会发生什么。

它是否仍然在servlet容器中使用netty并将其包装起来? 它有任何明显的性能成本吗? 或者它只是加入servlet容器?

3 个答案:

答案 0 :(得分:6)

正如Niels所说,Play不会使用Netty部署到其他平台。

如果您使用play runplay start命令运行Play,它会使用Netty来管理请求,然后将它们传递给Play框架。

但是,如果要部署到其他应用程序服务器,则无法进行此操作。因此,Play围绕ServletWrapper包装HTTP处理,这有效地转换了Play工作的正常方式,并使其在符合Servlet规范的J2EE堆栈上可用。

此包装器的特定代码可以是found here。在构建WAR文件时,有效地将此ServletWrapper放置为公开的Servlet(就像Struts与ActionServlet一样),它处理将请求路由到正确位置的必要工作。

答案 1 :(得分:0)

据我所知,它不使用netty。它有一个特殊的servlet,它将工作委托给play-classes。只有glassfish有一个原生的游戏容器。 它对绩效有明显的负面影响。

答案 2 :(得分:0)

this页所示,

在Play 1.2中,您可以使用.war命令获取play war myapp -o myapp.war文件并部署在该页面中列出的其中一个Java EE服务器中。