我使用Play 2.4 Scala2.11构建了一个RESTFul服务,现在我想将它部署到IBM Bluemix。
由于Bluemix使用Liberty作为容器,因此play2-war-plugin用于将项目打包到war包中。
但是当我将war包推送到Bluemix时,我得到了错误日志:
[ERROR] SRVE0918E:不允许尝试阻塞写入,因为注册WriteListener的应用程序已经启动了非阻塞I / O [play.core.server.servlet31.Play2Servlet31RequestHandler$ResultWriteListener@d2487ee8]。 / p>
我想知道:
答案 0 :(得分:2)
您无需将Play Framework应用程序打包到war文件中,以便将其部署到Bluemix。
只需使用play dist
或activator dist
构建您的应用,然后使用java_buildpack
进行部署。例如:
$ cf push play-application -p target/universal/play-application-1.0-SNAPSHOT.zip -b java_buildpack
您可以在此处查看Play Framework的Java buildpack文档:
https://github.com/cloudfoundry/java-buildpack/blob/master/docs/example-play_framework.md
答案 1 :(得分:2)
只为现在来这个页面的人(像我一样)。亚历克斯·德席尔瓦的答案很有效但需要一些更新:
play
或activator
使用sbt
sbt dist
或sbt stage
命令被描述为here。如果您使用play
则无法使用{&1}。在activator
的情况下 - 它已过时 - 它将失败并出现一些“无法找到依赖”错误。确保您安装了最新版本的sbt
。sbt-native-packager
插件。