2016-02-26 110 views
1

我正在使用scala和播放框架的Web项目中工作。我很担心应用程序部署。我需要在Glassfish服务器上托管我的应用程序。所以任何人都有这方面的经验?我有托管javaEE应用程序的经验,将.war文件上传到服务器。但我怎么能主持像这样的应用程序? 我已经参考以下文章,并建立dist。 Production DistScala播放框架Web应用程序托管流程

如果有人能够一步一步地给我说明,那么我很容易理解它。谢谢

+0

我不知道如何以及如何上传到服务器。我已经使用这篇文章创建了一个zip文件(https://www.playframework.com/documentation/2.1.x/ProductionDist)。与那我怎么可以托管我的应用程序在一个像glassfish –

回答

5

运行Play的推荐方法!生产中的应用程序是以独立模式运行,而不是在应用程序服务器环境中运行。有些插件可以为你创建* .war文件,但是,如果这是你喜欢前进的方式。特别是,看看这个:https://github.com/play2war/play2-war-plugin

我仍然建议你做推荐的独立部署。我们与sbt-native-packager SBT插件有良好的经验。它可以构建debrpm文件,并支持System V或Upstart启动脚本。有关于Play! Production page的更多信息。

要使用sbt-native-packager,您需要先将其添加到project/plugins.sbt文件中。就像这样:addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.1.0-RC2")

然后在build.sbt中,您必须配置该软件包的必要属性,如上面链接的Production页所述。我会在这里复制该页面的一些配置。假设您将使用rpm格式在CentOS上进行部署。下面是你需要把你的build.sbt什么:

lazy val root = (project in file(".")) 
    .enablePlugins(PlayScala, RpmPlugin) 

maintainer in Linux := "First Lastname <[email protected]>" 

packageSummary in Linux := "My custom package summary" 

packageDescription := "My longer package description" 

rpmRelease := "1" 

rpmVendor := "example.com" 

rpmUrl := Some("http://github.com/example/server") 

rpmLicense := Some("Apache v2") 

然后启动命令行sbt并执行以下命令:​​。它将构建您的应用并创建rpm文件,该文件将如下放置和命名:./target/rpm/RPMS/noarch/your-application-name.noarch.rpm

从那里,这是一个标准的rpm,您可以像往常一样部署和启动。

+0

很好的答案。这可能是一个愚蠢的问题,但是在构建rpm(或其他格式)并启动应用程序后,应用程序将以jvm运行。如何指定JVM的设置(堆空间等)。 – eddyP23

+1

SBT本机打包器插件允许您配置JVM参数。看看这里:http://www.scala-sbt.org/sbt-native-packager/archetypes/java_app/customize.html – Haspemulator