2016-02-26 109 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