簡體   English   中英

將Scala PlayFramework項目部署到IBM Bluemix

[英]Deploy Scala PlayFramework Project to IBM Bluemix

我已經使用Play 2.4 Scala2.11構建了RESTFul服務,現在我想將其部署到IBM Bluemix。

由於Bluemix使用Liberty作為容器,所以使用play2-war-plugin將項目打包為war軟件包。

但是,當我將war軟件包推送到Bluemix時,出現了錯誤日志:

[錯誤] SRVE0918E:不允許嘗試的阻止寫入,因為應用程序已經通過注冊WriteListener [play.core.server.servlet31.Play2Servlet31RequestHandler$ResultWriteListener@d2487ee8]啟動了非阻止I / O。

我想知道:

  • 是否可以將基於Scala的PlayFramework項目部署到IBM Bluemix?
  • 有一些更好的方法可以將Play項目打包為戰爭打包嗎?
  • 在我的情況下,我該怎么做以確認此錯誤是由我的代碼引起還是由play2-war-plugin引起

您不需要將Play Framework應用程序打包在war文件中即可將其部署到Bluemix。

只需使用play distactivator dist構建您的應用程序,然后使用java_buildpack進行部署。 例如:

$ cf push play-application -p target/universal/play-application-1.0-SNAPSHOT.zip -b java_buildpack

您可以在此處查看Play框架的Java buildpack文檔:

https://github.com/cloudfoundry/java-buildpack/blob/master/docs/example-play_framework.md

只適合像我這樣的人現在進入此頁面。 亞歷克斯·德席爾瓦的答案很好,但需要一些更新:

  1. 使用sbt代替命令playactivator此處介紹sbt distsbt stage命令。 如果您使用play ,則根本無法使用,對於activator已過時),它將失敗,並出現一些“找不到依賴項”錯誤。 確保已安裝最新版本的sbt
  2. 相同的說明適用於任何基於sbt的Scala應用程序,而不僅僅是Play Framework。 您只需要確保在sbt構建中正確設置了sbt-native-packager插件即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM